diff --git a/hzims-service-api/basic-api/pom.xml b/hzims-service-api/basic-api/pom.xml index ab3c5b0..cf979da 100644 --- a/hzims-service-api/basic-api/pom.xml +++ b/hzims-service-api/basic-api/pom.xml @@ -7,6 +7,12 @@ com.hnac.hzims 4.0.0-SNAPSHOT + + + com.alibaba + easyexcel + + 4.0.0 basic-api jar diff --git a/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/entity/CertificatetNoticeEntity.java b/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/entity/CertificatetNoticeEntity.java index 056acc8..13d20c5 100644 --- a/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/entity/CertificatetNoticeEntity.java +++ b/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/entity/CertificatetNoticeEntity.java @@ -1,6 +1,7 @@ package com.hnac.hzims.basic.entity; import com.baomidou.mybatisplus.annotation.SqlCondition; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -41,4 +42,10 @@ public class CertificatetNoticeEntity extends TenantEntity { @ApiModelProperty(value = "通知用户") @QueryField(condition = SqlCondition.LIKE) private String noticeUsers; + /** + * 通知用户 + */ + @TableField(exist = false) + @ApiModelProperty(value = "通知用户") + private String noticeUserNames; } diff --git a/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/entity/PersonManagemetEntity.java b/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/entity/PersonManagemetEntity.java index 7dec2fa..44bb68f 100644 --- a/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/entity/PersonManagemetEntity.java +++ b/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/entity/PersonManagemetEntity.java @@ -9,6 +9,8 @@ import lombok.EqualsAndHashCode; import org.springblade.core.mp.support.QueryField; import org.springblade.core.tenant.mp.TenantEntity; +import java.io.Serializable; + /** * 实体类 @@ -18,9 +20,7 @@ import org.springblade.core.tenant.mp.TenantEntity; @TableName("hzims_person_managemet") @EqualsAndHashCode(callSuper = true) @ApiModel(value = "人员管理表", description = "人员管理表") -public class PersonManagemetEntity extends TenantEntity { - - private static final long serialVersionUID = 1L; +public class PersonManagemetEntity extends TenantEntity implements Serializable { /** * 用户ID diff --git a/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/vo/PersonManagemetExportVo.java b/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/vo/PersonManagemetExportVo.java new file mode 100644 index 0000000..3d3f388 --- /dev/null +++ b/hzims-service-api/basic-api/src/main/java/com/hnac/hzims/basic/vo/PersonManagemetExportVo.java @@ -0,0 +1,122 @@ +package com.hnac.hzims.basic.vo; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + + +/** + * 实体类 + * @author Chill + */ +@Data +@ApiModel(value = "档案管理导出类",description = "档案管理导出类") +public class PersonManagemetExportVo{ + + private static final long serialVersionUID = 1L; + + @ExcelIgnore() + @ColumnWidth(value = 20) + @ApiModelProperty(value = "用户ID") + private String userId; + + /** + * 单位名称 + */ + @ExcelProperty(value = "单位名称", index = 0) + @ColumnWidth(value = 20) + @ApiModelProperty(value = "单位名称") + private String unitName; + + /** + * 用户名称 + */ + @ExcelProperty(value = "用户名称", index = 1) + @ColumnWidth(value = 20) + @ApiModelProperty(value = "用户名称") + private String name; + + + /** + * 性别 + */ + @ExcelProperty(value = "性别", index = 2) + @ColumnWidth(value = 20) + @ApiModelProperty(value = "性别") + private String sex; + /** + * 职位 + */ + @ExcelProperty(value = "职位", index = 3) + @ColumnWidth(value = 20) + @ApiModelProperty(value = "职位") + private String job; + /** + * 职称 + */ + @ExcelProperty(value = "职称", index = 4) + @ColumnWidth(value = 20) + @ApiModelProperty(value = "职称") + private String academicTitle; + /** + * 电话号码 + */ + @ExcelProperty(value = "电话号码", index = 5) + @ColumnWidth(value = 20) + @ApiModelProperty(value = "电话号码") + private String phone; + + /** + * 档案类型 + */ + @ExcelProperty(value = "档案类型", index = 6) + @ColumnWidth(value = 20) + @ApiModelProperty(value = "档案类型") + private String type; + + /** + * 到期时间 + */ + @ExcelProperty(value = "到期时间", index = 7) + @ColumnWidth(value = 20) + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "到期时间") + private Date deadTime; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间", index = 8) + @ColumnWidth(value = 20) + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @ApiModelProperty(value = "创建时间") + private Date createTime; + + /** + * 是否过期 + */ + @ExcelProperty(value = "是否过期", index = 9) + @ColumnWidth(value = 20) + @ApiModelProperty(value = "是否过期") + private String isDead; + + + +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/RehearsalYearVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/RehearsalYearVO.java index 97556b8..1b9f289 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/RehearsalYearVO.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/RehearsalYearVO.java @@ -50,4 +50,7 @@ public class RehearsalYearVO { @ApiModelProperty("12月完成数") private Long decemberNum; + + @ApiModelProperty("合计完成数") + private Long sum; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/TrainYearVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/TrainYearVO.java index 227b355..f9e3745 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/TrainYearVO.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/TrainYearVO.java @@ -50,4 +50,7 @@ public class TrainYearVO { @ApiModelProperty("12月完成数") private Long decemberNum; + + @ApiModelProperty("合计完成数") + private Long sum; } diff --git a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/controller/CertificatetNoticeController.java b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/controller/CertificatetNoticeController.java index 90cd677..6e392f6 100644 --- a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/controller/CertificatetNoticeController.java +++ b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/controller/CertificatetNoticeController.java @@ -1,5 +1,6 @@ package com.hnac.hzims.basic.controller; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.hnac.hzims.basic.entity.CertificatetNoticeEntity; @@ -10,8 +11,14 @@ import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + /** * 控制器 @@ -46,7 +53,7 @@ public class CertificatetNoticeController extends BladeController { /** * 新增或修改 */ - @PostMapping("/getCertificatetNotice") + @GetMapping("/getCertificatetNotice") @ApiOperationSupport(order = 1) @ApiOperation(value = "增加", notes = "传入imsDutyClass") public R getCertificatetNotice() { @@ -54,10 +61,21 @@ public class CertificatetNoticeController extends BladeController { .eq(CertificatetNoticeEntity::getIsDeleted, 0) .last("limit 1;")); if (ObjectUtil.isNotEmpty(res)) { + if (StringUtils.isNotBlank(res.getNoticeUsers())) { + String noticeUsers = res.getNoticeUsers(); + List list = Arrays.asList(noticeUsers.split(",")); + String names = list.stream().map(s -> { + if (ObjectUtil.isNotEmpty(UserCache.getUser(Long.valueOf(s)))) { + return UserCache.getUser(Long.valueOf(s)); + }else { + return new User(); + } + }).filter(s->ObjectUtil.isNotEmpty(s)).map(User::getName).collect(Collectors.joining(",")); + res.setNoticeUserNames(names); + } return R.data(res); } return R.data(""); - } } diff --git a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/controller/PresonManagementController.java b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/controller/PresonManagementController.java index c68768d..51334ae 100644 --- a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/controller/PresonManagementController.java +++ b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/controller/PresonManagementController.java @@ -1,31 +1,30 @@ package com.hnac.hzims.basic.controller; -import com.alibaba.spring.util.BeanUtils; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.alibaba.druid.support.json.JSONUtils; +import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.hnac.hzims.basic.entity.PersonManagemetEntity; import com.hnac.hzims.basic.service.IImsPresonManagementService; +import com.hnac.hzims.basic.vo.PersonManagemetExportVo; import com.hnac.hzims.basic.vo.PersonManagemetVo; import com.hnac.hzims.common.logs.annotation.OperationAnnotation; import com.hnac.hzims.common.logs.enums.BusinessType; import com.hnac.hzims.common.logs.enums.OperatorType; -import com.hnac.hzims.operational.duty.entity.ImsDutyClassEntity; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; -import org.springblade.core.mp.support.Condition; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.BeanUtil; -import org.springblade.core.tool.utils.CollectionUtil; -import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** @@ -61,12 +60,8 @@ public class PresonManagementController extends BladeController { @PostMapping ("/submit") @ApiOperationSupport(order = 1) @ApiOperation(value = "增加", notes = "传入imsDutyClass") - public R submit(@RequestBody PersonManagemetVo personManagemetVo) { - Boolean submit = iImsPresonManagementService.submit(personManagemetVo); - if (submit){ - return R.success("保存成功"); - } - return R.fail("保存失败"); + public R submit(@RequestBody PersonManagemetVo personManagemetVo) throws IllegalAccessException { + return iImsPresonManagementService.submit(personManagemetVo); } /** @@ -83,5 +78,44 @@ public class PresonManagementController extends BladeController { return R.fail("删除失败"); } + /** + * 分页 代码自定义代号 + */ + @GetMapping("/exportPersonManagemetVo") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入imsDutyClass") + @OperationAnnotation(moduleName = "档案管理",title = "档案管理",operatorType = OperatorType.MOBILE,businessType = + BusinessType.GENCODE,action + = "档案管理") + public void exportPersonManagemetVo(HttpServletResponse response,PersonManagemetVo personManagemetVo) { + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + String fileName = URLEncoder.encode("档案管理报表", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + List list=iImsPresonManagementService.exportPersonManagemet(personManagemetVo); + if(list!=null && list.size()>0){ + System.out.println("---------------- size = " + list.size()); + // 这里需要设置不关闭流 + EasyExcel.write(response.getOutputStream(), PersonManagemetExportVo.class).autoCloseStream(Boolean.FALSE).sheet("档案管理报表") + .doWrite(list); + } + } catch (Exception e) { + System.out.println("exportExcel = " + e.toString()); + // 重置response + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + Map map = new HashMap<>(); + map.put("isSuccess", "false"); + map.put("msg", "档案管理报表导出失败" + e.getMessage()); + try { + response.getWriter().println(JSONUtils.toJSONString(map)); + } catch (IOException e3) { + throw new ServiceException( "发生异常 :" + e.toString()); + } + } + } } diff --git a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/mapper/PersonManagemetMapper.java b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/mapper/PersonManagemetMapper.java index 708bb7f..fdbaf20 100644 --- a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/mapper/PersonManagemetMapper.java +++ b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/mapper/PersonManagemetMapper.java @@ -2,6 +2,7 @@ package com.hnac.hzims.basic.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.basic.entity.PersonManagemetEntity; +import com.hnac.hzims.basic.vo.PersonManagemetExportVo; import com.hnac.hzims.basic.vo.PersonManagemetVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -27,4 +28,9 @@ public interface PersonManagemetMapper extends UserDataScopeBaseMapper exportPersonManagemet( + @Param(value = "type")String type, @Param(value = "deadStartTime") Date deadStartTime, @Param(value = "deadTime")Date deadTime, + @Param(value = "name")String name, @Param(value = "unitName")String unitName, @Param(value = "sex")String sex, @Param(value = "job")String job, + @Param(value = "academicTitle")String academicTitle, @Param(value = "status")Integer status) ; + } diff --git a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/mapper/PersonManagemetMapper.xml b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/mapper/PersonManagemetMapper.xml index ca4e02d..6cf6c05 100644 --- a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/mapper/PersonManagemetMapper.xml +++ b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/mapper/PersonManagemetMapper.xml @@ -19,7 +19,7 @@ - + @@ -27,8 +27,8 @@ @@ -95,5 +96,45 @@ and b.status =#{status} + + diff --git a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/service/IImsPresonManagementService.java b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/service/IImsPresonManagementService.java index 928b01d..408e4be 100644 --- a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/service/IImsPresonManagementService.java +++ b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/service/IImsPresonManagementService.java @@ -3,8 +3,12 @@ package com.hnac.hzims.basic.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.hnac.hzims.basic.entity.PersonManagemetEntity; +import com.hnac.hzims.basic.vo.PersonManagemetExportVo; import com.hnac.hzims.basic.vo.PersonManagemetVo; import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; + +import java.util.List; /** * 服务类 @@ -15,7 +19,9 @@ public interface IImsPresonManagementService extends IService getPersonManagemetEntity(PersonManagemetVo personManagemetVo, Query query); - Boolean submit(PersonManagemetVo personManagemetVo); + R submit(PersonManagemetVo personManagemetVo) throws IllegalAccessException; Boolean removeByPersonManagemetVo(PersonManagemetVo personManagemetVo); + + List exportPersonManagemet(PersonManagemetVo personManagemetVo); } diff --git a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/service/impl/PresonManagementServiceImpl.java b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/service/impl/PresonManagementServiceImpl.java index 4bfb77d..830a440 100644 --- a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/service/impl/PresonManagementServiceImpl.java +++ b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/service/impl/PresonManagementServiceImpl.java @@ -2,12 +2,15 @@ package com.hnac.hzims.basic.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hnac.hzims.basic.entity.CertificatetEntity; import com.hnac.hzims.basic.entity.PersonManagemetEntity; import com.hnac.hzims.basic.mapper.PersonManagemetMapper; import com.hnac.hzims.basic.service.IImsCertificatetService; import com.hnac.hzims.basic.service.IImsPresonManagementService; +import com.hnac.hzims.basic.utils.CertificatetType; +import com.hnac.hzims.basic.vo.PersonManagemetExportVo; import com.hnac.hzims.basic.vo.PersonManagemetVo; import com.hnac.hzims.common.logs.utils.StringUtils; import lombok.RequiredArgsConstructor; @@ -22,6 +25,9 @@ import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.system.feign.ISysClient; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + +import javax.xml.ws.WebServiceException; +import java.lang.reflect.Field; import java.util.List; import java.util.stream.Collectors; @@ -37,7 +43,7 @@ import java.util.stream.Collectors; public class PresonManagementServiceImpl extends BaseServiceImpl implements IImsPresonManagementService { - private ISysClient sysClient; + private final ISysClient sysClient; private final IImsCertificatetService certificatetService; @@ -59,44 +65,51 @@ public class PresonManagementServiceImpl extends BaseServiceImpl deptName = sysClient.getDeptName(Long.valueOf(deptId)); - if (deptName.isSuccess()&&StringUtils.isBlank(deptName.getData())){ - personManagemetEntity.setUnitName(deptName.getData()); + if (!allFieldsNull(personManagemetEntity)) { + if (StringUtils.isBlank(personManagemetEntity.getUnitName())){ + String deptId = AuthUtil.getDeptId(); + R deptName = sysClient.getDeptName(Long.valueOf(deptId)); + if (deptName.isSuccess()&&StringUtils.isNotBlank(deptName.getData())){ + personManagemetEntity.setUnitName(deptName.getData()); + } } - } - if (ObjectUtil.isNotEmpty(personManagemetEntity)) { - this.saveOrUpdate(personManagemetEntity); + Integer count = baseMapper.selectCount(Wrappers.query().lambda() + .eq(PersonManagemetEntity::getUserId, personManagemetEntity.getUserId()) + .eq(PersonManagemetEntity::getIsDeleted, 0)); + if (count>0){ + return R.fail("该用户已存在,请重新编辑!"); + } + this.saveOrUpdate(personManagemetEntity); } if (CollectionUtil.isNotEmpty(personManagemetVo.getCertificatetEntityList())) { List certificatetList = personManagemetVo.getCertificatetEntityList().stream().map( s -> { - s.setPersonId(personManagemetEntity.getId().toString()); - if (System.currentTimeMillis() > s.getDeadTime().getTime()){ - s.setStatus(2); - }else { - s.setStatus(1); + if(StringUtils.isBlank(s.getPersonId())){ + s.setPersonId(personManagemetEntity.getId().toString()); } return s; } ).collect(Collectors.toList()); certificatetService.saveOrUpdateBatch(certificatetList); } - return true; + return R.success("保存成功"); } - return false; - } catch (Exception e) { - log.error("入参 personManagemetVo" + personManagemetVo + ":" + e); - return false; - } + return R.fail("保存失败"); } + public static boolean allFieldsNull(Object obj) throws IllegalAccessException { + for (Field field : obj.getClass().getDeclaredFields()) { + field.setAccessible(true); + if (field.get(obj) != null) { + return false; + } + } + return true; + } @Override @Transactional(rollbackFor = Exception.class) public Boolean removeByPersonManagemetVo(PersonManagemetVo personManagemetVo) { @@ -120,5 +133,22 @@ public class PresonManagementServiceImpl extends BaseServiceImpl exportPersonManagemet(PersonManagemetVo personManagemetVo) { + List list = baseMapper.exportPersonManagemet(personManagemetVo.getType(), personManagemetVo.getDeadStartTime(), personManagemetVo.getDeadTime(), + personManagemetVo.getName(), personManagemetVo.getUnitName(), personManagemetVo.getSex(), personManagemetVo.getJob(), + personManagemetVo.getAcademicTitle(), personManagemetVo.getStatus()); + list = list.stream().map(s -> { + CertificatetType[] types = CertificatetType.values(); + for (int i = 0; i < types.length; i++) { + if (types[i].getValue().equals(s.getType())) { + s.setType(types[i].getKey()); + } + } + return s; + }).collect(Collectors.toList()); + return list; + } + } diff --git a/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/utils/CertificatetType.java b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/utils/CertificatetType.java new file mode 100644 index 0000000..041f5fe --- /dev/null +++ b/hzims-service/hzims-basic/src/main/java/com/hnac/hzims/basic/utils/CertificatetType.java @@ -0,0 +1,41 @@ +package com.hnac.hzims.basic.utils; + + +import lombok.Getter; + +/** + * 证书类型 + * @author ty + */ +public enum CertificatetType +{ + /** + * 电工证 + */ + Electrician("1","电工证"), + + /** + * 安全员证 + */ + Safety("2","安全员证"), + + /** + * 登高证 + */ + Climbe("3","登高证"), + + /** + * 桥机证 + */ + Bridge("4","桥机证"); + @Getter + private String value; + + @Getter + private String key; + + CertificatetType(String value, String key){ + this.key = key; + this.value = value; + } +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/ConferenceController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/ConferenceController.java index aa12908..2a09af6 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/ConferenceController.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/ConferenceController.java @@ -114,8 +114,8 @@ public class ConferenceController extends BladeController { @ApiOperation(value = "会议记录分页") @ApiOperationSupport(order = 10) public R> recordPage(@ApiIgnore @RequestParam Map param, Query query) { - IPage page = conferenceRecordService.page(Condition.getPage(query), - Condition.getQueryWrapper(param, ConferenceRecordEntity.class)); + IPage page = conferenceRecordService.page(Condition.getPage(query), Condition.getQueryWrapper( + param, ConferenceRecordEntity.class).lambda().orderByDesc(ConferenceRecordEntity::getCreateTime)); return R.data(page); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/HygieneController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/HygieneController.java index f73fc03..e0e36e9 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/HygieneController.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/HygieneController.java @@ -2,11 +2,9 @@ package com.hnac.hzims.safeproduct.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.hnac.hzims.common.utils.Condition; import com.hnac.hzims.safeproduct.dto.HygienePlanDTO; import com.hnac.hzims.safeproduct.dto.HygieneRecordDTO; import com.hnac.hzims.safeproduct.entity.HygienePlanEntity; -import com.hnac.hzims.safeproduct.entity.HygieneRecordEntity; import com.hnac.hzims.safeproduct.service.IHygienePlanService; import com.hnac.hzims.safeproduct.service.IHygieneRecordService; import com.hnac.hzims.safeproduct.vo.HygienePlanDetailVO; diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java index 58b036e..aea0139 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java @@ -116,24 +116,24 @@ public class RehearsalController extends BladeController { @ApiOperation(value = "演练记录分页") @ApiOperationSupport(order = 10) public R> rehearsalRecordPage(@ApiIgnore @RequestParam Map param, Query query) { - IPage page = rehearsalRecordService.page(Condition.getPage(query), - Condition.getQueryWrapper(param, RehearsalRecordEntity.class)); + IPage page = rehearsalRecordService.page(Condition.getPage(query), Condition.getQueryWrapper( + param, RehearsalRecordEntity.class).lambda().orderByDesc(RehearsalRecordEntity::getCreateTime)); return R.data(page); } @GetMapping("/dataByMonth") @ApiOperation(value = "月度统计表") @ApiOperationSupport(order = 11) - public R> dataByMonth(@RequestParam String month, Query query) { - IPage page = rehearsalPlanService.dataByMonth(month, query); + public R> dataByMonth(@RequestParam String month, String unit, Query query) { + IPage page = rehearsalPlanService.dataByMonth(month, unit, query); return R.data(page); } @GetMapping("/dataByYear") @ApiOperation(value = "年度统计表") @ApiOperationSupport(order = 12) - public R> dataByYear(@RequestParam String year, Query query) { - IPage page = rehearsalPlanService.dataByYear(year, query); + public R> dataByYear(@RequestParam String year, String unit, Query query) { + IPage page = rehearsalPlanService.dataByYear(year, unit, query); return R.data(page); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java index 172a59b..8cf7a62 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java @@ -128,7 +128,8 @@ public class TrainController extends BladeController { @ApiOperation(value = "培训记录分页") @ApiOperationSupport(order = 10) public R> trainRecordPage(@ApiIgnore @RequestParam Map param, Query query) { - IPage page = trainRecordService.page(Condition.getPage(query), Condition.getQueryWrapper(param, TrainRecordEntity.class)); + IPage page = trainRecordService.page(Condition.getPage(query), Condition.getQueryWrapper( + param, TrainRecordEntity.class).lambda().orderByDesc(TrainRecordEntity::getCreateTime)); return R.data(page); } @@ -176,7 +177,8 @@ public class TrainController extends BladeController { @ApiOperation(value = "考试记录分页") @ApiOperationSupport(order = 16) public R> testPage(@ApiIgnore @RequestParam Map param, Query query) { - IPage page = testService.page(Condition.getPage(query), Condition.getQueryWrapper(param, TestEntity.class)); + IPage page = testService.page(Condition.getPage(query), Condition.getQueryWrapper(param, TestEntity.class) + .lambda().orderByDesc(TestEntity::getCreateTime)); return R.data(page); } @@ -206,16 +208,16 @@ public class TrainController extends BladeController { @GetMapping("/trainDataByMonth") @ApiOperation(value = "培训月度统计表") @ApiOperationSupport(order = 20) - public R> trainDataByMonth(@RequestParam String month, Query query) { - IPage page = trainPlanService.dataByMonth(month, query); + public R> trainDataByMonth(@RequestParam String month, String unit, Query query) { + IPage page = trainPlanService.dataByMonth(month, unit, query); return R.data(page); } @GetMapping("/trainDataByYear") @ApiOperation(value = "培训年度统计表") @ApiOperationSupport(order = 21) - public R> trainDataByYear(@RequestParam String year, Query query) { - IPage page = trainPlanService.dataByYear(year, query); + public R> trainDataByYear(@RequestParam String year, String unit, Query query) { + IPage page = trainPlanService.dataByYear(year, unit, query); return R.data(page); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/ConferencePlanMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/ConferencePlanMapper.xml index c71d0dc..b6cd857 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/ConferencePlanMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/ConferencePlanMapper.xml @@ -19,5 +19,7 @@ AND t1.scheduled_end_time < #{endTime} + ORDER BY + t1.create_time DESC \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneRecordMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneRecordMapper.xml index 68efbe5..7536baa 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneRecordMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneRecordMapper.xml @@ -22,5 +22,7 @@ AND hygiene_plan_id = #{hygienePlanId} + ORDER BY + create_time DESC \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneZoneMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneZoneMapper.java index b3d0e5c..6614aff 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneZoneMapper.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneZoneMapper.java @@ -4,6 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hnac.hzims.safeproduct.entity.HygieneZoneEntity; import org.apache.ibatis.annotations.Mapper; +/** + * 卫生自查责任区Mapper类 + * + * @author liwen + * @date 2024-01-02 + */ @Mapper public interface HygieneZoneMapper extends BaseMapper { diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.java index 990793b..7eaee13 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.java @@ -24,26 +24,29 @@ public interface RehearsalPlanMapper extends BaseMapper { /** * 查询当月各单位的演练总数 * @param page 分页类 + * @param unit 单位 * @param month 月份 * @return 当月的演练总数据 */ - IPage selectByMonth(IPage page, String month); + IPage selectByMonth(IPage page, String unit, String month); /** * 查询当月各单位已完成的演练数据 * @param page 分页类 + * @param unit 单位 * @param month 月份 * @return 当月的已完成数据 */ - IPage selectFinishedDataByMonth(IPage page, String month); + IPage selectFinishedDataByMonth(IPage page, String unit, String month); /** * 查询当年的所有单位 * @param page 分页类 + * @param unit 单位 * @param year 年份 * @return 年度单位数据 */ - IPage selectUnitByYear(IPage page, @Param("year") String year); + IPage selectUnitByYear(IPage page, String unit, @Param("year") String year); /** * 查询各单位全年已完成的演练数据 diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.xml index e3f1b14..38b8ac3 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.xml @@ -10,6 +10,9 @@ WHERE is_deleted = 0 AND scheduled_end_time like concat('%', #{month}, '%') + + AND unit like concat('%', #{unit}, '%') + GROUP BY unit ORDER BY @@ -25,6 +28,9 @@ is_deleted = 0 AND scheduled_end_time like concat('%', #{month}, '%') AND rehearsal_status = 'FINISHED' + + AND unit like concat('%', #{unit}, '%') + GROUP BY unit ORDER BY @@ -39,6 +45,9 @@ WHERE is_deleted = 0 AND scheduled_end_time like concat('%', #{year}, '%') + + AND unit like concat('%', #{unit}, '%') + ORDER BY unit @@ -80,5 +89,7 @@ AND t1.scheduled_end_time < #{endTime} + ORDER BY + t1.create_time DESC \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.xml index f6ded92..7b1556d 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.xml @@ -9,6 +9,10 @@ hzims_test WHERE is_deleted = 0 + AND train_plan_id = #{trainPlanId} + + ORDER BY + create_time DESC \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.java index 38eaa5b..6839241 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.java @@ -22,26 +22,29 @@ public interface TrainPlanMapper extends BaseMapper { /** * 查询当月各单位的培训计划总数 * @param page 分页类 + * @param unit 单位 * @param month 月份 * @return 当月培训计划总数 */ - IPage selectByMonth(IPage page, String month); + IPage selectByMonth(IPage page, String unit, String month); /** * 查询当月各单位已完成的培训计划数据 * @param page1 分页类 + * @param unit 单位 * @param month 月份 * @return 当月已完成培训计划数 */ - IPage selectFinishedDataByMonth(IPage page1, String month); + IPage selectFinishedDataByMonth(IPage page1, String unit, String month); /** * 查询当年的所有单位 * @param page 分页类 + * @param unit 单位 * @param year 年份 * @return 年度单位数据 */ - IPage selectUnitByYear(IPage page, String year); + IPage selectUnitByYear(IPage page, String unit, String year); /** * 查询各单位全年已完成的培训计划数 diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.xml index 1b600f5..57c83d1 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.xml @@ -10,6 +10,9 @@ WHERE is_deleted = 0 AND scheduled_end_time like concat('%', #{month}, '%') + + AND unit like concat('%', #{unit}, '%') + GROUP BY unit ORDER BY @@ -25,6 +28,9 @@ is_deleted = 0 AND scheduled_end_time like concat('%', #{month}, '%') AND train_status = 'FINISHED' + + AND unit like concat('%', #{unit}, '%') + GROUP BY unit ORDER BY @@ -39,6 +45,9 @@ WHERE is_deleted = 0 AND scheduled_end_time like concat('%', #{year}, '%') + + AND unit like concat('%', #{unit}, '%') + ORDER BY unit diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneZoneService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneZoneService.java index 3c62284..add6ee3 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneZoneService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneZoneService.java @@ -5,6 +5,12 @@ import com.hnac.hzims.safeproduct.entity.HygieneZoneEntity; import java.util.List; +/** + * 卫生自查责任区服务类 + * + * @author liwen + * @date 2024-01-02 + */ public interface IHygieneZoneService extends IService { /** diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalPlanService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalPlanService.java index cc18cfe..d679fc0 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalPlanService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalPlanService.java @@ -29,18 +29,20 @@ public interface IRehearsalPlanService extends IService { /** * 演练月度数据 * @param month 月份 + * @param unit 单位 * @param query 分页类 * @return 月度统计分页 */ - IPage dataByMonth(String month, Query query); + IPage dataByMonth(String month, String unit, Query query); /** * 演练年度数据 * @param year 年份 + * @param unit 单位 * @param query 分页类 * @return 年度统计分页 */ - IPage dataByYear(String year, Query query); + IPage dataByYear(String year, String unit, Query query); /** * 演练计划数据导出 diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainPlanService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainPlanService.java index 50571cc..75e86ed 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainPlanService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainPlanService.java @@ -22,18 +22,20 @@ public interface ITrainPlanService extends IService { /** * 月度培训数据 * @param month 月份 + * @param unit 单位 * @param query 分页类 * @return 月度培训分页 */ - IPage dataByMonth(String month, Query query); + IPage dataByMonth(String month, String unit, Query query); /** * 年度培训数据 * @param year 年份 + * @param unit 单位 * @param query 分页类 * @return 年度培训分页 */ - IPage dataByYear(String year, Query query); + IPage dataByYear(String year, String unit, Query query); /** * 删除培训计划 diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/ConferencePlanServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/ConferencePlanServiceImpl.java index 803b972..08255fc 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/ConferencePlanServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/ConferencePlanServiceImpl.java @@ -73,6 +73,7 @@ public class ConferencePlanServiceImpl extends ServiceImpl implements IHygieneZoneService { diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/RehearsalPlanServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/RehearsalPlanServiceImpl.java index 1d1932c..040e07a 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/RehearsalPlanServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/RehearsalPlanServiceImpl.java @@ -32,6 +32,7 @@ import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; @@ -68,10 +69,10 @@ public class RehearsalPlanServiceImpl extends ServiceImpl dataByMonth(String month, Query query) { + public IPage dataByMonth(String month, String unit, Query query) { // 查询当月各单位的演练总数 IPage page = new Page<>(query.getCurrent(), query.getSize()); - IPage unitPage = baseMapper.selectByMonth(page, month); + IPage unitPage = baseMapper.selectByMonth(page, unit, month); List unitList = unitPage.getRecords(); // 若无数据,返回空页面 if (CollectionUtils.isEmpty(unitList)) { @@ -79,18 +80,18 @@ public class RehearsalPlanServiceImpl extends ServiceImpl page1 = new Page<>(query.getCurrent(), query.getSize()); - IPage finishedPage = baseMapper.selectFinishedDataByMonth(page1, month); + IPage finishedPage = baseMapper.selectFinishedDataByMonth(page1, unit, month); List finishedList = finishedPage.getRecords(); // 处理统计数据 - for (RehearsalMonthVO unit : unitList) { - Long taskNum = unit.getScheduledTaskNum(); - Optional finishedRehearsal = finishedList.stream().filter(x -> x.getUnit().equals(unit.getUnit())).findFirst(); + for (RehearsalMonthVO u : unitList) { + Long taskNum = u.getScheduledTaskNum(); + Optional finishedRehearsal = finishedList.stream().filter(x -> x.getUnit().equals(u.getUnit())).findFirst(); Long finishedTaskNum = finishedRehearsal.isPresent() ? finishedRehearsal.get().getFinishedTaskNum() : 0L; - unit.setFinishedTaskNum(finishedTaskNum); - unit.setUnfinishedTaskNum(taskNum - finishedTaskNum); + u.setFinishedTaskNum(finishedTaskNum); + u.setUnfinishedTaskNum(taskNum - finishedTaskNum); BigDecimal taskDecimal = new BigDecimal(taskNum); BigDecimal finishedDecimal = new BigDecimal(finishedTaskNum); - unit.setTaskCompletionRate(finishedDecimal.divide(taskDecimal, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")) + u.setTaskCompletionRate(finishedDecimal.divide(taskDecimal, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")) .setScale(2, RoundingMode.HALF_UP)); } unitPage.setRecords(unitList); @@ -101,10 +102,10 @@ public class RehearsalPlanServiceImpl extends ServiceImpl dataByYear(String year, Query query) { + public IPage dataByYear(String year, String unit, Query query) { IPage page = new Page<>(query.getCurrent(), query.getSize()); // 查询当年的所有单位 - IPage unitPage = baseMapper.selectUnitByYear(page, year); + IPage unitPage = baseMapper.selectUnitByYear(page, unit, year); List records = unitPage.getRecords(); // 若无数据,返回空页面 if (CollectionUtils.isEmpty(records)) { @@ -114,49 +115,66 @@ public class RehearsalPlanServiceImpl extends ServiceImpl unitMonthDataList = baseMapper.selectFinishedDataByUnit(unitList, year); // 将各单位每个月的演练数据写入统计列表 + List res = new ArrayList<>(); unitMonthDataList.forEach(data -> { RehearsalYearVO rehearsalYearVO = records.stream().filter(x -> x.getUnit().equals(data.getUnit())) .collect(Collectors.toList()).get(0); + long sum = rehearsalYearVO.getSum() == null ? 0 : rehearsalYearVO.getSum(); // 根据月份匹配写入对应字段 switch (data.getDateTime()) { case "01": rehearsalYearVO.setJanuaryNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "02": rehearsalYearVO.setFebruaryNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "03": rehearsalYearVO.setMarchNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "04": rehearsalYearVO.setAprilNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "05": rehearsalYearVO.setMayNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "06": rehearsalYearVO.setJuneNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "07": rehearsalYearVO.setJulyNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "08": rehearsalYearVO.setAugustNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "09": rehearsalYearVO.setSeptemberNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "10": rehearsalYearVO.setOctoberNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "11": rehearsalYearVO.setNovemberNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); break; case "12": rehearsalYearVO.setDecemberNum(data.getFinishedNum()); + rehearsalYearVO.setSum(sum + data.getFinishedNum()); + } + if (rehearsalYearVO.getSum() != 0) { + res.add(rehearsalYearVO); } }); - unitPage.setRecords(records); + unitPage.setRecords(res); return unitPage; } @@ -259,6 +277,7 @@ public class RehearsalPlanServiceImpl extends ServiceImpl dataByMonth(String month, Query query) { + public IPage dataByMonth(String month, String unit, Query query) { // 查询当月各单位的培训计划总数 IPage page = new Page<>(query.getCurrent(), query.getSize()); - IPage unitPage = baseMapper.selectByMonth(page, month); + IPage unitPage = baseMapper.selectByMonth(page, unit, month); List unitList = unitPage.getRecords(); // 若无数据,返回空页面 if (CollectionUtils.isEmpty(unitList)) { @@ -69,18 +70,18 @@ public class TrainPlanServiceImpl extends ServiceImpl page1 = new Page<>(query.getCurrent(), query.getSize()); - IPage finishedPage = baseMapper.selectFinishedDataByMonth(page1, month); + IPage finishedPage = baseMapper.selectFinishedDataByMonth(page1, unit, month); List finishedList = finishedPage.getRecords(); // 处理统计数据 - for (TrainMonthVO unit : unitList) { - Long taskNum = unit.getScheduledTrainNum(); - Optional finishedRehearsal = finishedList.stream().filter(x -> x.getUnit().equals(unit.getUnit())).findFirst(); + for (TrainMonthVO u : unitList) { + Long taskNum = u.getScheduledTrainNum(); + Optional finishedRehearsal = finishedList.stream().filter(x -> x.getUnit().equals(u.getUnit())).findFirst(); Long finishedTaskNum = finishedRehearsal.isPresent() ? finishedRehearsal.get().getFinishedTrainNum() : 0L; - unit.setFinishedTrainNum(finishedTaskNum); - unit.setUnfinishedTrainNum(taskNum - finishedTaskNum); + u.setFinishedTrainNum(finishedTaskNum); + u.setUnfinishedTrainNum(taskNum - finishedTaskNum); BigDecimal taskDecimal = new BigDecimal(taskNum); BigDecimal finishedDecimal = new BigDecimal(finishedTaskNum); - unit.setCompletionRate(finishedDecimal.divide(taskDecimal, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")) + u.setCompletionRate(finishedDecimal.divide(taskDecimal, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")) .setScale(2, RoundingMode.HALF_UP)); } unitPage.setRecords(unitList); @@ -91,10 +92,10 @@ public class TrainPlanServiceImpl extends ServiceImpl dataByYear(String year, Query query) { + public IPage dataByYear(String year, String unit, Query query) { IPage page = new Page<>(query.getCurrent(), query.getSize()); // 查询当年的所有单位 - IPage unitPage = baseMapper.selectUnitByYear(page, year); + IPage unitPage = baseMapper.selectUnitByYear(page, unit, year); List records = unitPage.getRecords(); // 若无数据,返回空页面 if (CollectionUtils.isEmpty(records)) { @@ -104,49 +105,66 @@ public class TrainPlanServiceImpl extends ServiceImpl unitMonthDataList = baseMapper.selectFinishedDataByUnit(unitList, year); // 将各单位每个月的培训计划数据写入统计列表 + List res = new ArrayList<>(); unitMonthDataList.forEach(data -> { TrainYearVO trainYearVO = records.stream().filter(x -> x.getUnit().equals(data.getUnit())) .collect(Collectors.toList()).get(0); + long sum = trainYearVO.getSum() == null ? 0 : trainYearVO.getSum(); // 根据月份匹配写入对应字段 switch (data.getDateTime()) { case "01": trainYearVO.setJanuaryNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "02": trainYearVO.setFebruaryNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "03": trainYearVO.setMarchNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "04": trainYearVO.setAprilNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "05": trainYearVO.setMayNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "06": trainYearVO.setJuneNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "07": trainYearVO.setJulyNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "08": trainYearVO.setAugustNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "09": trainYearVO.setSeptemberNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "10": trainYearVO.setOctoberNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "11": trainYearVO.setNovemberNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); break; case "12": trainYearVO.setDecemberNum(data.getFinishedNum()); + trainYearVO.setSum(sum + data.getFinishedNum()); + } + if (trainYearVO.getSum() != 0) { + res.add(trainYearVO); } }); - unitPage.setRecords(records); + unitPage.setRecords(res); return unitPage; } @@ -256,6 +274,7 @@ public class TrainPlanServiceImpl extends ServiceImpl