绩效管理

liweidong
maxiangong 1 week ago
parent cab6cfc323
commit e98a021b77
  1. 27
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/efficiency/BsEfficiencyTaskProcessor.java
  2. 27
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/efficiency/BsEfficiencyTempProcessor.java
  3. 27
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/energy/BsEnergyCoreUseProcessor.java
  4. 27
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/energy/BsEnergyHistoryRecProcessor.java
  5. 18
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/efficiency/feign/IBsEfficiencyTaskClient.java
  6. 19
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/efficiency/feign/IBsEfficiencyTempClient.java
  7. 21
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/energy/feign/IBsEnergyCoreUseClient.java
  8. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java
  9. 41
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskReportController.java
  10. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/feign/BsEfficiencyTaskClient.java
  11. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/feign/BsEfficiencyTempClient.java
  12. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/BsEfficiencyTaskReportMapper.java
  13. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskReportMapper.xml
  14. 56
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/pojo/vo/BsEfficiencyTaskReportVO.java
  15. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/IBsEfficiencyTaskReportService.java
  16. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/IBsEfficiencyTaskService.java
  17. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/IBsEfficiencyTempService.java
  18. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/impl/BsEfficiencyTaskReportServiceImpl.java
  19. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/impl/BsEfficiencyTaskServiceImpl.java
  20. 64
      blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/impl/BsEfficiencyTempServiceImpl.java
  21. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/excel/BsEnergyQuotaElectricExcel.java
  22. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/excel/BsEnergyQuotaWaterExcel.java
  23. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/feign/BsEnergyCoreUseClient.java
  24. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EnergyQuotaMapper.xml
  25. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/vo/BsEnergyQuotaVO.java
  26. 33
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/CoreUseJob.java

@ -0,0 +1,27 @@
package org.springblade.job.processor.efficiency;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.efficiency.feign.IBsEfficiencyTaskClient;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
@Component
@Data
@Slf4j
public class BsEfficiencyTaskProcessor implements BasicProcessor {
@Resource
private IBsEfficiencyTaskClient client;
@Override
public ProcessResult process(TaskContext context) throws Exception {
log.info("开始发送未填报消息...");
client.unreportedNotice();
log.info("结束发送未填报消息...");
return new ProcessResult(true);
}
}

@ -0,0 +1,27 @@
package org.springblade.job.processor.efficiency;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.efficiency.feign.IBsEfficiencyTempClient;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
@Component
@Data
@Slf4j
public class BsEfficiencyTempProcessor implements BasicProcessor {
@Resource
private IBsEfficiencyTempClient client;
@Override
public ProcessResult process(TaskContext context) throws Exception {
log.info("开始下发绩效任务...");
client.taskAssignment();
log.info("结束下发绩效任务...");
return new ProcessResult(true);
}
}

@ -0,0 +1,27 @@
package org.springblade.job.processor.energy;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.energy.feign.IBsEnergyCoreUseClient;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
@Component
@Data
@Slf4j
public class BsEnergyCoreUseProcessor implements BasicProcessor {
@Resource
private IBsEnergyCoreUseClient client;
@Override
public ProcessResult process(TaskContext context) throws Exception {
log.info("开始同步iot...");
client.updateUsed("1");
client.updateUsed("2");
log.info("结束同步iot...");
return new ProcessResult(true);
}
}

@ -0,0 +1,27 @@
package org.springblade.job.processor.energy;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.energy.feign.IBsEnergyCoreUseClient;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
@Component
@Data
@Slf4j
public class BsEnergyHistoryRecProcessor implements BasicProcessor {
@Resource
private IBsEnergyCoreUseClient client;
@Override
public ProcessResult process(TaskContext taskContext) throws Exception {
log.info("开始汇总用水用电记录...");
client.saveHistoryRec();
log.info("完成汇总用水用电记录...");
return new ProcessResult(true);
}
}

@ -0,0 +1,18 @@
package org.springblade.desk.efficiency.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(
value = AppConstant.APPLICATION_DESK_NAME
)
public interface IBsEfficiencyTaskClient {
String API_PREFIX = "/feign/client/bs-efficiency-task";
String UNREPORTED_NOTICE = API_PREFIX + "unreported-notice";
@GetMapping(UNREPORTED_NOTICE)
void unreportedNotice();
}

@ -0,0 +1,19 @@
package org.springblade.desk.efficiency.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(
value = AppConstant.APPLICATION_DESK_NAME
)
public interface IBsEfficiencyTempClient {
String API_PREFIX = "/feign/client/bs-efficiency-temp";
String TASK_ASSIGNMENT = API_PREFIX + "/task-assignment";
@GetMapping(TASK_ASSIGNMENT)
void taskAssignment();
}

@ -0,0 +1,21 @@
package org.springblade.desk.energy.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(
value = AppConstant.APPLICATION_DESK_NAME
)
public interface IBsEnergyCoreUseClient {
String API_PREFIX = "/feign/client/bs-energy-core-use";
String UPDATE_USED = API_PREFIX + "/update-used";
String SAVE_HISTORY_REC = API_PREFIX + "/save-history-rec";
@GetMapping(UPDATE_USED)
void updateUsed(String type);
@GetMapping(SAVE_HISTORY_REC)
void saveHistoryRec();
}

@ -304,7 +304,7 @@ public class BsEfficiencyTaskController extends BladeController {
R.fail("请先读取文件");
}
List<BsEfficiencyTaskReportEntity> reports = bsEfficiencyTaskReportService.list(new LambdaQueryWrapper<BsEfficiencyTaskReportEntity>().eq(BsEfficiencyTaskReportEntity::getTaskId, task.getId()));
if(!CollectionUtils.isEmpty(reports)){
if (!CollectionUtils.isEmpty(reports)) {
for (BsEfficiencyTaskReportEntity report : reports) {
bsEfficiencyTaskReportService.deleteLogic(Arrays.asList(report.getId()));
List<BsEfficiencyTaskParamEntity> params = bsEfficiencyTaskParamService.list(new LambdaQueryWrapper<BsEfficiencyTaskParamEntity>().eq(BsEfficiencyTaskParamEntity::getReportId, report.getId()));
@ -455,5 +455,4 @@ public class BsEfficiencyTaskController extends BladeController {
.doWrite(new ArrayList<>());
}
}

@ -0,0 +1,41 @@
package org.springblade.desk.efficiency.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskReportVO;
import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskVO;
import org.springblade.desk.efficiency.service.IBsEfficiencyTaskReportService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 绩效任务填报表 控制器
*
* @author BladeX
* @since 2026-04-22
*/
@RestController
@AllArgsConstructor
@RequestMapping("/bsEfficiencyTaskReport")
@Tag(name = "绩效任务填报表", description = "绩效任务填报接口")
public class BsEfficiencyTaskReportController extends BladeController {
private final IBsEfficiencyTaskReportService bsEfficiencyTaskReportService;
/**
* 绩效任务填报表 自定义分页
*/
@GetMapping("/page")
@Operation(summary = "分页", description = "传入bsEfficiencyTemp")
public R<IPage<BsEfficiencyTaskReportVO>> page(BsEfficiencyTaskReportVO bsEfficiencyTaskReportVO, Query query) {
IPage<BsEfficiencyTaskReportVO> pages = bsEfficiencyTaskReportService.selectBsEfficiencyTaskReportPage(Condition.getPage(query), bsEfficiencyTaskReportVO);
return R.data(pages);
}
}

@ -0,0 +1,18 @@
package org.springblade.desk.efficiency.feign;
import io.swagger.v3.oas.annotations.Hidden;
import jakarta.annotation.Resource;
import org.springblade.desk.efficiency.service.IBsEfficiencyTaskService;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Hidden
public class BsEfficiencyTaskClient implements IBsEfficiencyTaskClient {
@Resource
private IBsEfficiencyTaskService service;
@Override
public void unreportedNotice() {
service.unreportedNotice();
}
}

@ -0,0 +1,19 @@
package org.springblade.desk.efficiency.feign;
import io.swagger.v3.oas.annotations.Hidden;
import jakarta.annotation.Resource;
import org.springblade.desk.efficiency.service.IBsEfficiencyTempService;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Hidden
public class BsEfficiencyTempClient implements IBsEfficiencyTempClient {
@Resource
private IBsEfficiencyTempService service;
@Override
public void taskAssignment() {
service.taskAssignment();
}
}

@ -1,7 +1,12 @@
package org.springblade.desk.efficiency.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskReportEntity;
import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskReportVO;
import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTempVO;
import java.util.List;
/**
* 绩效任务填报 Mapper 接口
@ -11,5 +16,13 @@ import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskReportEntity;
*/
public interface BsEfficiencyTaskReportMapper extends BaseMapper<BsEfficiencyTaskReportEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param bsEfficiencyTaskReport 查询参数
* @return List<BsEfficiencyTaskReportVO>
*/
List<BsEfficiencyTaskReportVO> selectBsEfficiencyTaskReportPage(IPage page, BsEfficiencyTaskReportVO bsEfficiencyTaskReport);
}

@ -20,10 +20,38 @@
</resultMap>
<select id="selectBsEfficiencyTaskReportPage" resultMap="bsEfficiencyTaskReportResultMap">
SELECT t.* from BS_EFFICIENCY_TASK_REPORT t
SELECT
tr.EMPLOYEE_CODE,
tr.EMPLOYEE_NAME,
SUBSTR(t.year_month,1,4) AS year,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '01' THEN tr.TOTAL_SCORE ELSE null END) AS m01Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '02' THEN tr.TOTAL_SCORE ELSE null END) AS m02Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '03' THEN tr.TOTAL_SCORE ELSE null END) AS m03Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '04' THEN tr.TOTAL_SCORE ELSE null END) AS m04Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '05' THEN tr.TOTAL_SCORE ELSE null END) AS m05Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '06' THEN tr.TOTAL_SCORE ELSE null END) AS m06Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '07' THEN tr.TOTAL_SCORE ELSE null END) AS m07Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '08' THEN tr.TOTAL_SCORE ELSE null END) AS m08Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '09' THEN tr.TOTAL_SCORE ELSE null END) AS m09Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '10' THEN tr.TOTAL_SCORE ELSE null END) AS m10Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '11' THEN tr.TOTAL_SCORE ELSE null END) AS m11Score,
MAX(CASE WHEN SUBSTR(t.year_month,5,2) = '12' THEN tr.TOTAL_SCORE ELSE null END) AS m12Score
FROM
BS_EFFICIENCY_TASK_REPORT tr
INNER JOIN BS_EFFICIENCY_TASK t ON tr.TASK_ID = t.ID
<where>
t.is_deleted = 0
tr.is_deleted = 0 and t.status = 4
<if test="bsEfficiencyTaskReport.employeeCode!=null">
and tr.EMPLOYEE_CODE = #{bsEfficiencyTaskReport.employeeCode}
</if>
<if test="bsEfficiencyTaskReport.employeeName!=null">
and tr.EMPLOYEE_NAME = #{bsEfficiencyTaskReport.employeeName}
</if>
</where>
GROUP BY
tr.EMPLOYEE_CODE, tr.EMPLOYEE_NAME, SUBSTR(t.year_month,1,4)
ORDER BY
SUBSTR(t.year_month,1,4) desc, tr.EMPLOYEE_CODE;
</select>
</mapper>

@ -5,6 +5,7 @@ import lombok.EqualsAndHashCode;
import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskReportEntity;
import java.io.Serial;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper = true)
@ -12,5 +13,58 @@ public class BsEfficiencyTaskReportVO extends BsEfficiencyTaskReportEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 年份
*/
private String year;
/**
* 一月总分
*/
private BigDecimal m01Score;
/**
* 二月总分
*/
private BigDecimal m02Score;
/**
* 三月总分
*/
private BigDecimal m03Score;
/**
* 四月总分
*/
private BigDecimal m04Score;
/**
* 五月总分
*/
private BigDecimal m05Score;
/**
* 六月总分
*/
private BigDecimal m06Score;
/**
* 七月总分
*/
private BigDecimal m07Score;
/**
* 八月总分
*/
private BigDecimal m08Score;
/**
* 九月总分
*/
private BigDecimal m09Score;
/**
* 十月总分
*/
private BigDecimal m10Score;
/**
* 十一月总分
*/
private BigDecimal m11Score;
/**
* 十二月总分
*/
private BigDecimal m12Score;
}

@ -1,7 +1,10 @@
package org.springblade.desk.efficiency.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskReportEntity;
import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskReportVO;
import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTempVO;
/**
* 绩效任务填报 服务类
@ -10,5 +13,14 @@ import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskReportEntity;
* @since 2026-04-20
*/
public interface IBsEfficiencyTaskReportService extends BaseService<BsEfficiencyTaskReportEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param bsEfficiencyTaskReport 查询参数
* @return IPage<BsEfficiencyTaskReportVO>
*/
IPage<BsEfficiencyTaskReportVO> selectBsEfficiencyTaskReportPage(IPage<BsEfficiencyTaskReportVO> page, BsEfficiencyTaskReportVO bsEfficiencyTaskReport);
}

@ -32,4 +32,6 @@ public interface IBsEfficiencyTaskService extends BaseService<BsEfficiencyTaskEn
*/
List<BsEfficiencyTaskVO> selectBsEfficiencyTaskList(BsEfficiencyTaskVO bsEfficiencyTask);
void unreportedNotice();
}

@ -30,4 +30,6 @@ public interface IBsEfficiencyTempService extends BaseService<BsEfficiencyTempEn
* @return
*/
R taskAssignment(Long id);
void taskAssignment();
}

@ -1,8 +1,10 @@
package org.springblade.desk.efficiency.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.efficiency.mapper.BsEfficiencyTaskReportMapper;
import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskReportEntity;
import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskReportVO;
import org.springblade.desk.efficiency.service.IBsEfficiencyTaskReportService;
import org.springframework.stereotype.Service;
@ -14,4 +16,10 @@ import org.springframework.stereotype.Service;
*/
@Service
public class BsEfficiencyTaskReportServiceImpl extends BaseServiceImpl<BsEfficiencyTaskReportMapper, BsEfficiencyTaskReportEntity> implements IBsEfficiencyTaskReportService {
@Override
public IPage<BsEfficiencyTaskReportVO> selectBsEfficiencyTaskReportPage(IPage<BsEfficiencyTaskReportVO> page, BsEfficiencyTaskReportVO bsEfficiencyTaskReport) {
return page.setRecords(baseMapper.selectBsEfficiencyTaskReportPage(page, bsEfficiencyTaskReport));
}
}

@ -1,15 +1,24 @@
package org.springblade.desk.efficiency.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.common.feign.IMesNotifyMessageClient;
import org.springblade.desk.common.pojo.entity.MesNotifyMessageEntity;
import org.springblade.desk.common.service.IMesNotifyMessageService;
import org.springblade.desk.efficiency.enums.BsEfficiencyTaskEnum;
import org.springblade.desk.efficiency.mapper.BsEfficiencyTaskMapper;
import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskEntity;
import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskVO;
import org.springblade.desk.efficiency.service.IBsEfficiencyTaskService;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 绩效任务 服务实现类
@ -20,6 +29,9 @@ import java.util.List;
@Service
public class BsEfficiencyTaskServiceImpl extends BaseServiceImpl<BsEfficiencyTaskMapper, BsEfficiencyTaskEntity> implements IBsEfficiencyTaskService {
@Resource
private IMesNotifyMessageService mesNotifyMessageService;
@Override
public IPage<BsEfficiencyTaskVO> selectBsEfficiencyTaskPage(IPage<BsEfficiencyTaskVO> page, BsEfficiencyTaskVO bsEfficiencyTask) {
bsEfficiencyTask.setType("1");
@ -39,4 +51,24 @@ public class BsEfficiencyTaskServiceImpl extends BaseServiceImpl<BsEfficiencyTas
return baseMapper.selectBsEfficiencyTaskList(bsEfficiencyTask);
}
@Override
public void unreportedNotice() {
LocalDate lastMonthDate = LocalDate.now().minusMonths(1);
String year = String.valueOf(lastMonthDate.getYear());
String month = String.format("%02d", lastMonthDate.getMonthValue());
String yearMonth = year + "-" + month;
List<BsEfficiencyTaskEntity> taskList = this.list(new LambdaQueryWrapper<BsEfficiencyTaskEntity>()
.eq(BsEfficiencyTaskEntity::getType, "2")
.eq(BsEfficiencyTaskEntity::getStatus, BsEfficiencyTaskEnum.STATUS_IN_PROGRESS.getCode())
.eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth));
Set<Long> reportUsers = taskList.stream().map(BsEfficiencyTaskEntity::getReportUser).collect(Collectors.toSet());
for (Long reportUser : reportUsers) {
String msg = ",请及时填报";
MesNotifyMessageEntity notifyMessage = new MesNotifyMessageEntity();
notifyMessage.setContent(msg);
notifyMessage.setReceiveUserId(reportUser);
mesNotifyMessageService.save(notifyMessage);
}
}
}

@ -4,7 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.desk.common.feign.IMesNotifyMessageClient;
import org.springblade.desk.common.pojo.entity.MesNotifyMessageEntity;
import org.springblade.desk.common.service.IMesNotifyMessageService;
import org.springblade.desk.efficiency.mapper.BsEfficiencyTempMapper;
import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskEntity;
import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTempEntity;
@ -12,9 +16,12 @@ import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTempVO;
import org.springblade.desk.efficiency.service.IBsEfficiencyTaskService;
import org.springblade.desk.efficiency.service.IBsEfficiencyTempService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDate;
import java.util.Collection;
import java.util.Date;
import java.util.List;
/**
* 绩效模板 服务实现类
@ -27,6 +34,8 @@ public class BsEfficiencyTempServiceImpl extends BaseServiceImpl<BsEfficiencyTem
@Resource
private IBsEfficiencyTaskService bsEfficiencyTaskService;
@Resource
private IMesNotifyMessageService mesNotifyMessageService;
@Override
public IPage<BsEfficiencyTempVO> selectBsEfficiencyTempPage(IPage<BsEfficiencyTempVO> page, BsEfficiencyTempVO bsEfficiencyTemp) {
@ -46,23 +55,17 @@ public class BsEfficiencyTempServiceImpl extends BaseServiceImpl<BsEfficiencyTem
String month = String.format("%02d", lastMonthDate.getMonthValue());
String yearMonth = year + "-" + month;
String taskPrefix = year + "年" + month + "月";
BsEfficiencyTaskEntity mainTask = bsEfficiencyTaskService.getOne(new LambdaQueryWrapper<BsEfficiencyTaskEntity>()
.eq(BsEfficiencyTaskEntity::getType, "1")
.eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth));
BsEfficiencyTaskEntity mainTask = bsEfficiencyTaskService.getOne(new LambdaQueryWrapper<BsEfficiencyTaskEntity>().eq(BsEfficiencyTaskEntity::getType, "1").eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth));
if (mainTask == null) {
mainTask = new BsEfficiencyTaskEntity();
mainTask.setYearMonth(yearMonth);
mainTask.setTaskName(taskPrefix + "绩效");
mainTask.setType("1");
mainTask.setReportUser(bsEfficiencyTemp.getReportUser());
mainTask.setReportTime(new Date());
mainTask.setParentId(0L);
bsEfficiencyTaskService.save(mainTask);
}
BsEfficiencyTaskEntity subTask = bsEfficiencyTaskService.getOne(new LambdaQueryWrapper<BsEfficiencyTaskEntity>()
.eq(BsEfficiencyTaskEntity::getType, "2")
.eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth)
.eq(BsEfficiencyTaskEntity::getTempId, bsEfficiencyTemp.getId()));
BsEfficiencyTaskEntity subTask = bsEfficiencyTaskService.getOne(new LambdaQueryWrapper<BsEfficiencyTaskEntity>().eq(BsEfficiencyTaskEntity::getType, "2").eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth).eq(BsEfficiencyTaskEntity::getTempId, bsEfficiencyTemp.getId()));
if (subTask != null) {
return R.fail("已生成绩效任务,需删除任务后进行下发");
}
@ -77,4 +80,49 @@ public class BsEfficiencyTempServiceImpl extends BaseServiceImpl<BsEfficiencyTem
bsEfficiencyTaskService.save(subTask);
return R.success();
}
@Override
public void taskAssignment() {
List<BsEfficiencyTempEntity> allTempList = this.list();
if (CollectionUtils.isEmpty(allTempList)) {
return;
}
LocalDate lastMonthDate = LocalDate.now().minusMonths(1);
String year = String.valueOf(lastMonthDate.getYear());
String month = String.format("%02d", lastMonthDate.getMonthValue());
String yearMonth = year + "-" + month;
String taskPrefix = year + "年" + month + "月";
BsEfficiencyTaskEntity mainTask = bsEfficiencyTaskService.getOne(new LambdaQueryWrapper<BsEfficiencyTaskEntity>().eq(BsEfficiencyTaskEntity::getType, "1").eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth));
if (mainTask == null) {
mainTask = new BsEfficiencyTaskEntity();
mainTask.setYearMonth(yearMonth);
mainTask.setTaskName(taskPrefix + "绩效");
mainTask.setType("1");
mainTask.setReportTime(new Date());
mainTask.setParentId(0L);
bsEfficiencyTaskService.save(mainTask);
}
for (BsEfficiencyTempEntity bsEfficiencyTemp : allTempList) {
BsEfficiencyTaskEntity subTask = bsEfficiencyTaskService.getOne(new LambdaQueryWrapper<BsEfficiencyTaskEntity>().eq(BsEfficiencyTaskEntity::getType, "2").eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth).eq(BsEfficiencyTaskEntity::getTempId, bsEfficiencyTemp.getId()));
if (subTask != null) {
continue;
}
subTask = new BsEfficiencyTaskEntity();
subTask.setYearMonth(yearMonth);
subTask.setTaskName(taskPrefix + bsEfficiencyTemp.getTaskName());
subTask.setType("2");
subTask.setReportUser(bsEfficiencyTemp.getReportUser());
subTask.setReportTime(new Date());
subTask.setTempId(bsEfficiencyTemp.getId());
subTask.setParentId(mainTask.getId());
bsEfficiencyTaskService.save(subTask);
String msg = String.format("%s已下发,请及时填报", subTask.getTaskName());
MesNotifyMessageEntity notifyMessage = new MesNotifyMessageEntity();
notifyMessage.setContent(msg);
notifyMessage.setReceiveUserId(bsEfficiencyTemp.getReportUser());
mesNotifyMessageService.save(notifyMessage);
}
}
}

@ -27,24 +27,12 @@ public class BsEnergyQuotaElectricExcel implements Serializable {
@ColumnWidth(50)
@ExcelProperty("作业中心")
private String workCenterName;
/**
* 作业中心编码
*/
@ColumnWidth(50)
@ExcelProperty("作业中心编码")
private String wcCode;
/**
* 设备
*/
@ColumnWidth(50)
@ExcelProperty("设备")
private String equipmentName;
/**
* 设备编码
*/
@ColumnWidth(50)
@ExcelProperty("设备")
private String deviceCode;
/**
* 日期
*/

@ -55,29 +55,18 @@ public class BsEnergyQuotaWaterExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 作业中心
*/
@ColumnWidth(50)
@ExcelProperty("作业中心")
private String workCenterName;
/**
* 作业中心编码
*/
@Schema(description = "作业中心编码")
private String wcCode;
/**
* 设备
*/
@ColumnWidth(50)
@ExcelProperty("设备")
private String equipmentName;
/**
* 设备编码
*/
@Schema(description = "设备编码")
private String deviceCode;
/**
* 日期
*/

@ -0,0 +1,24 @@
package org.springblade.desk.energy.feign;
import io.swagger.v3.oas.annotations.Hidden;
import jakarta.annotation.Resource;
import org.springblade.desk.energy.service.IBsEnergyCoreUseService;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Hidden
public class BsEnergyCoreUseClient implements IBsEnergyCoreUseClient {
@Resource
private IBsEnergyCoreUseService service;
@Override
public void updateUsed(String type) {
service.updateUsed(type);
}
@Override
public void saveHistoryRec() {
service.saveHistoryRec();
}
}

@ -42,6 +42,12 @@
<if test="bsEnergyQuota.date!=null">
and "DATE" = #{bsEnergyQuota.date}
</if>
<if test="bsEnergyQuota.startDate!=null">
and "DATE" <![CDATA[ >= ]]> #{bsEnergyQuota.startDate}
</if>
<if test="bsEnergyQuota.endDate!=null">
and "DATE" <![CDATA[ <= ]]> #{bsEnergyQuota.endDate}
</if>
</where>
</select>

@ -42,4 +42,14 @@ public class BsEnergyQuotaVO extends BsEnergyQuotaEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 日期开始时间
*/
private String startDate;
/**
* 日期结束时间
*/
private String endDate;
}

@ -1,33 +0,0 @@
package org.springblade.desk.energy.task;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.energy.service.IBsEnergyCoreUseService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Slf4j
@Component
@RequiredArgsConstructor
public class CoreUseJob {
private final IBsEnergyCoreUseService bsEnergyCoreUseService;
// @Scheduled(cron = "0 0 0/1 * * ?")
public void updateUsed() {
log.info("开始同步iot...");
// 同步用水记录
bsEnergyCoreUseService.updateUsed("1");
// 同步用电记录
bsEnergyCoreUseService.updateUsed("2");
log.info("完成同步iot...");
}
// @Scheduled(cron = "0 0 1 * * ?")
public void saveHistoryRec() {
log.info("开始汇总用水用电记录...");
bsEnergyCoreUseService.saveHistoryRec();
log.info("完成汇总用水用电记录...");
}
}
Loading…
Cancel
Save