Browse Source

Merge remote-tracking branch 'origin/master'

zhongwei
yang_shj 11 months ago
parent
commit
9d14230c8a
  1. 8
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/ConferenceExportDTO.java
  2. 3
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygienePlanDTO.java
  3. 14
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/RehearsalExportDTO.java
  4. 3
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygienePlanEntity.java
  5. 3
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java
  6. 6
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/HygienePlanDetailVO.java
  7. 8
      hzims-service/safeproduct/pom.xml
  8. 10
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java
  9. 2
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/HygieneController.java
  10. 33
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/CarJob.java
  11. 6
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.xml
  12. 16
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/ConferencePlanMapper.xml
  13. 4
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygienePlanMapper.xml
  14. 2
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneRecordMapper.xml
  15. 16
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.xml
  16. 8
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java
  17. 10
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java
  18. 8
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java
  19. 8
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java
  20. 20
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java
  21. 84
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java
  22. 15
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java
  23. 21
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java
  24. 8
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygienePlanServiceImpl.java
  25. 12
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TestServiceImpl.java
  26. 12
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TrainRecordServiceImpl.java
  27. 53
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/AsposeUtil.java
  28. 159
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/BaseUtil.java
  29. 15
      hzims-service/safeproduct/src/main/resources/License.xml
  30. BIN
      hzims-service/safeproduct/src/main/resources/template/车辆维保记录单.docx

8
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/ConferenceExportDTO.java

@ -45,14 +45,6 @@ public class ConferenceExportDTO {
@ExcelProperty(value = "主持人", index = 6) @ExcelProperty(value = "主持人", index = 6)
private String host; private String host;
@ApiModelProperty("会议实际开始时间")
@ExcelProperty(value = "会议实际开始时间", index = 7)
private Date actualStartTime;
@ApiModelProperty("会议实际结束时间")
@ExcelProperty(value = "会议实际结束时间", index = 8)
private Date actualEndTime;
@ApiModelProperty("会议状态") @ApiModelProperty("会议状态")
@ExcelProperty(value = "会议状态", index = 9) @ExcelProperty(value = "会议状态", index = 9)
private String conferenceStatus; private String conferenceStatus;

3
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygienePlanDTO.java

@ -24,6 +24,9 @@ public class HygienePlanDTO extends BaseEntity {
@ApiModelProperty("卫生自查计划id") @ApiModelProperty("卫生自查计划id")
private Long id; private Long id;
@ApiModelProperty("单位")
private String unit;
@ApiModelProperty("计划名称") @ApiModelProperty("计划名称")
private String name; private String name;

14
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/RehearsalExportDTO.java

@ -37,19 +37,7 @@ public class RehearsalExportDTO {
@ExcelProperty(value = "演练地点", index = 4) @ExcelProperty(value = "演练地点", index = 4)
private String location; private String location;
@ApiModelProperty("参演人数")
@ExcelProperty(value = "参演人数", index = 5)
private Integer peopleNum;
@ApiModelProperty("演练实际开始时间")
@ExcelProperty(value = "演练实际开始时间", index = 6)
private Date actualStartTime;
@ApiModelProperty("演练实际结束时间")
@ExcelProperty(value = "演练实际结束时间", index = 7)
private Date actualEndTime;
@ApiModelProperty("演练状态") @ApiModelProperty("演练状态")
@ExcelProperty(value = "演练状态", index = 8) @ExcelProperty(value = "演练状态", index = 5)
private String rehearsalStatus; private String rehearsalStatus;
} }

3
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygienePlanEntity.java

@ -24,6 +24,9 @@ public class HygienePlanEntity extends BaseEntity {
@ApiModelProperty("计划名称") @ApiModelProperty("计划名称")
private String name; private String name;
@ApiModelProperty("单位")
private String unit;
@ApiModelProperty("标准总分值") @ApiModelProperty("标准总分值")
private Integer standardScore; private Integer standardScore;

3
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java

@ -59,7 +59,4 @@ public class HygieneRecordEntity extends BaseEntity {
@Size(max = 1000, message = "检查图片字段长度不能超过1000") @Size(max = 1000, message = "检查图片字段长度不能超过1000")
@ApiModelProperty("检查图片") @ApiModelProperty("检查图片")
private String imgPath; private String imgPath;
@ApiModelProperty("自查记录状态")
private String hygieneRecordStatus;
} }

6
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/HygienePlanDetailVO.java

@ -21,6 +21,12 @@ import java.util.List;
@ApiModel(value = "卫生自查计划详情VO类") @ApiModel(value = "卫生自查计划详情VO类")
public class HygienePlanDetailVO extends BaseEntity { public class HygienePlanDetailVO extends BaseEntity {
@ApiModelProperty("计划名称")
private String name;
@ApiModelProperty("单位")
private String unit;
@ApiModelProperty("标准总分值") @ApiModelProperty("标准总分值")
private Integer standardScore; private Integer standardScore;

8
hzims-service/safeproduct/pom.xml

@ -160,6 +160,14 @@
<skip>false</skip> <skip>false</skip>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--设置为true,以便把本地的system的jar也包括进来-->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

10
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java

@ -120,7 +120,6 @@ public class CarController extends BladeController {
@GetMapping("/carMaintenancePage") @GetMapping("/carMaintenancePage")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "startTime", value = "开始时间", dataType = "query", paramType = "string"), @ApiImplicitParam(name = "startTime", value = "开始时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "endTime", value = "结束时间", dataType = "query", paramType = "string"), @ApiImplicitParam(name = "endTime", value = "结束时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "carId", value = "车辆id", dataType = "query", paramType = "string") @ApiImplicitParam(name = "carId", value = "车辆id", dataType = "query", paramType = "string")
@ -169,7 +168,6 @@ public class CarController extends BladeController {
@GetMapping("/carUsedRecordPage") @GetMapping("/carUsedRecordPage")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "carId", value = "车辆id", dataType = "query", paramType = "string") @ApiImplicitParam(name = "carId", value = "车辆id", dataType = "query", paramType = "string")
}) })
@ApiOperation(value = "用车记录分页") @ApiOperation(value = "用车记录分页")
@ -244,14 +242,14 @@ public class CarController extends BladeController {
@GetMapping("/exportCarUsedRecordData") @GetMapping("/exportCarUsedRecordData")
@ApiOperation(value = "导出用车记录单") @ApiOperation(value = "导出用车记录单")
@ApiOperationSupport(order = 25) @ApiOperationSupport(order = 25)
public void exportCarUsedRecordData() { public void exportCarUsedRecordData(@RequestParam Long id, HttpServletResponse response) {
carUsedRecordService.exportCarUsedRecordData(id, response);
} }
@GetMapping("/exportCarCheckRecordData") @GetMapping("/exportCarCheckRecordData")
@ApiOperation(value = "导出车检记录单") @ApiOperation(value = "导出车检记录单")
@ApiOperationSupport(order = 26) @ApiOperationSupport(order = 26)
public void exportCarCheckRecordData() { public void exportCarCheckRecordData(@RequestParam Long id, HttpServletResponse response) {
carCheckRecordService.exportCarCheckRecordData(id, response);
} }
} }

2
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/HygieneController.java

@ -72,6 +72,8 @@ public class HygieneController extends BladeController {
@GetMapping("/planPage") @GetMapping("/planPage")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "name", value = "名称", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledStartTime", value = "计划开始时间", dataType = "query", paramType = "string"), @ApiImplicitParam(name = "scheduledStartTime", value = "计划开始时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string") @ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string")
}) })

33
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/CarJob.java

@ -1,12 +1,18 @@
package com.hnac.hzims.safeproduct.jobs; package com.hnac.hzims.safeproduct.jobs;
import com.alibaba.excel.util.CollectionUtils;
import com.hnac.hzims.safeproduct.entity.CarEntity; import com.hnac.hzims.safeproduct.entity.CarEntity;
import com.hnac.hzims.safeproduct.entity.CarMaintenanceEntity;
import com.hnac.hzims.safeproduct.enums.CarInsuranceStatusEnum;
import com.hnac.hzims.safeproduct.enums.CarMaintenanceStatusEnum;
import com.hnac.hzims.safeproduct.service.ICarMaintenanceService;
import com.hnac.hzims.safeproduct.service.ICarService; import com.hnac.hzims.safeproduct.service.ICarService;
import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -23,9 +29,13 @@ public class CarJob {
@Autowired @Autowired
ICarService carService; ICarService carService;
@Autowired
ICarMaintenanceService carMaintenanceService;
/** /**
* 车辆台账自动变更 * 车辆台账自动变更
*/ */
@Transactional(rollbackFor = Exception.class)
@XxlJob("autoChangeCarStatus") @XxlJob("autoChangeCarStatus")
public ReturnT<String> autoChangeCarStatus(String param) { public ReturnT<String> autoChangeCarStatus(String param) {
// 获取时间范围 // 获取时间范围
@ -33,9 +43,26 @@ public class CarJob {
Date before = DateUtil.minusDays(current, 1); Date before = DateUtil.minusDays(current, 1);
String today = DateUtil.format(current, "yyyy-mm-dd"); String today = DateUtil.format(current, "yyyy-mm-dd");
String yesterday = DateUtil.format(before, "yyyy-mm-dd"); String yesterday = DateUtil.format(before, "yyyy-mm-dd");
// 车包状态变更
List<CarEntity> uninsuredCarList = carService.getCarListByInsuranceTime(today, yesterday); List<CarEntity> uninsuredCarList = carService.getCarListByInsuranceTime(today, yesterday);
// uninsuredCarList.forEach(car -> car.setInsuranceStatus()); uninsuredCarList.forEach(car -> car.setInsuranceStatus(CarInsuranceStatusEnum.UNINSURED.getValue()));
// List<CarEntity> carListByMaintenanceTime = carService.getCarListByMaintenanceTime(today, yesterday); boolean insuranceUpdate = carService.updateBatchById(uninsuredCarList);
return ReturnT.SUCCESS; if (!insuranceUpdate) {
return ReturnT.FAIL;
}
// 维保状态变更
List<CarEntity> unMaintainedCarList = carService.getCarListByMaintenanceTime(today, yesterday);
unMaintainedCarList.forEach(car -> {
// 查询车辆在两次维保时间内是否有确认过的维保记录
String lastMaintenanceTime = DateUtil.format(car.getMaintenanceLastTime(), "yyyy-mm-dd");
String nextMaintenanceTime = DateUtil.format(car.getMaintenanceNextTime(), "yyyy-mm-dd");
List<CarMaintenanceEntity> carMaintenanceList = carMaintenanceService.getCarMaintenanceByCarIdAndTime(car.getId(),
lastMaintenanceTime, nextMaintenanceTime);
// 若无维保记录,说明在规定范围内未进行有效维保
if (CollectionUtils.isEmpty(carMaintenanceList)) {
car.setMaintenanceStatus(CarMaintenanceStatusEnum.UNMAINTAINED.getValue());
}
});
return carService.updateBatchById(unMaintainedCarList) ? ReturnT.SUCCESS : ReturnT.FAIL;
} }
} }

6
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.xml

@ -44,7 +44,7 @@
<select id="selectMilesByPlateNumber" resultType="java.math.BigDecimal"> <select id="selectMilesByPlateNumber" resultType="java.math.BigDecimal">
SELECT SELECT
sum(t2.miles) t2.end_miles
FROM FROM
hzims_car t1 hzims_car t1
LEFT JOIN hzims_car_used_record t2 ON t1.id = t2.car_id LEFT JOIN hzims_car_used_record t2 ON t1.id = t2.car_id
@ -53,6 +53,10 @@
<if test="plateNumber != null and plateNumber != ''"> <if test="plateNumber != null and plateNumber != ''">
AND t1.plate_number = #{plateNumber} AND t1.plate_number = #{plateNumber}
</if> </if>
ORDER BY
t2.create_time DESC
LIMIT
1
</select> </select>
</mapper> </mapper>

16
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/ConferencePlanMapper.xml

@ -3,23 +3,21 @@
<select id="getConferenceByUnitAndDate" resultType="com.hnac.hzims.safeproduct.dto.ConferenceExportDTO"> <select id="getConferenceByUnitAndDate" resultType="com.hnac.hzims.safeproduct.dto.ConferenceExportDTO">
SELECT SELECT
t1.unit, t1.scheduled_start_time, t1.scheduled_end_time, t1.theme, t1.location, t1.conference_method, unit, scheduled_start_time, scheduled_end_time, theme, location, conference_method, host, conference_status
t1.host, t2.actual_start_time, t2.actual_end_time, t1.conference_status
FROM FROM
hzims_conference_plan t1 hzims_conference_plan
LEFT JOIN hzims_conference_record t2 ON t1.id = t2.conference_plan_id
WHERE WHERE
t1.is_deleted = 0 is_deleted = 0
<if test="unit != 'null' and unit != ''"> <if test="unit != 'null' and unit != ''">
AND t1.unit like concat('%', #{unit}, '%') AND unit like concat('%', #{unit}, '%')
</if> </if>
<if test="startTime != 'null' and startTime != ''"> <if test="startTime != 'null' and startTime != ''">
AND t1.scheduled_start_time >= #{startTime} AND scheduled_start_time >= #{startTime}
</if> </if>
<if test="endTime != 'null' and endTime != ''"> <if test="endTime != 'null' and endTime != ''">
AND t1.scheduled_end_time &lt; #{endTime} AND scheduled_end_time &lt; #{endTime}
</if> </if>
ORDER BY ORDER BY
t1.create_time DESC create_time DESC
</select> </select>
</mapper> </mapper>

4
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygienePlanMapper.xml

@ -20,9 +20,9 @@
<select id="selectFinishedDataByMonth" resultType="com.hnac.hzims.safeproduct.vo.HygieneMonthVO"> <select id="selectFinishedDataByMonth" resultType="com.hnac.hzims.safeproduct.vo.HygieneMonthVO">
SELECT SELECT
unit, count(1) as finished_task_num unit, count(1) as finished_check_num
FROM FROM
hzims_hygiene_record hzims_hygiene_plan
WHERE WHERE
is_deleted = 0 is_deleted = 0
AND scheduled_end_time like concat('%', #{month}, '%') AND scheduled_end_time like concat('%', #{month}, '%')

2
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneRecordMapper.xml

@ -20,7 +20,7 @@
WHERE WHERE
is_deleted = 0 is_deleted = 0
<if test="param.hygienePlanId != null and param.hygienePlanId != ''"> <if test="param.hygienePlanId != null and param.hygienePlanId != ''">
AND hygiene_plan_id = #{hygienePlanId} AND hygiene_plan_id = #{param.hygienePlanId}
</if> </if>
ORDER BY ORDER BY
create_time DESC create_time DESC

16
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/RehearsalPlanMapper.xml

@ -73,23 +73,21 @@
<select id="getRehearsalByUnitAndDate" resultType="com.hnac.hzims.safeproduct.dto.RehearsalExportDTO"> <select id="getRehearsalByUnitAndDate" resultType="com.hnac.hzims.safeproduct.dto.RehearsalExportDTO">
SELECT SELECT
t1.unit, t1.subject, t1.scheduled_start_time, t1.scheduled_end_time, t1.location, unit, subject, scheduled_start_time, scheduled_end_time, location, rehearsal_status
t2.people_num, t2.actual_start_time, t2.actual_end_time, t1.rehearsal_status
FROM FROM
hzims_rehearsal_plan t1 hzims_rehearsal_plan
LEFT JOIN hzims_rehearsal_record t2 ON t1.id = t2.rehearsal_plan_id
WHERE WHERE
t1.is_deleted = 0 is_deleted = 0
<if test="unit != 'null' and unit != ''"> <if test="unit != 'null' and unit != ''">
AND t1.unit like concat('%', #{unit}, '%') AND unit like concat('%', #{unit}, '%')
</if> </if>
<if test="startTime != 'null' and startTime != ''"> <if test="startTime != 'null' and startTime != ''">
AND t1.scheduled_start_time >= #{startTime} AND scheduled_start_time >= #{startTime}
</if> </if>
<if test="endTime != 'null' and endTime != ''"> <if test="endTime != 'null' and endTime != ''">
AND t1.scheduled_end_time &lt; #{endTime} AND scheduled_end_time &lt; #{endTime}
</if> </if>
ORDER BY ORDER BY
t1.create_time DESC create_time DESC
</select> </select>
</mapper> </mapper>

8
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java

@ -8,6 +8,7 @@ import com.hnac.hzims.safeproduct.vo.CarCheckRecordDetailVO;
import com.hnac.hzims.safeproduct.vo.CarCheckRecordPageVO; import com.hnac.hzims.safeproduct.vo.CarCheckRecordPageVO;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import javax.servlet.http.HttpServletResponse;
import java.util.Map; import java.util.Map;
/** /**
@ -60,4 +61,11 @@ public interface ICarCheckRecordService extends IService<CarCheckRecordEntity> {
* @return true-成功false-失败 * @return true-成功false-失败
*/ */
boolean removeCarCheckRecord(Long id); boolean removeCarCheckRecord(Long id);
/**
* 导出车检记录单
* @param id 车检记录id
* @param response 响应类
*/
void exportCarCheckRecordData(Long id, HttpServletResponse response);
} }

10
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java

@ -10,6 +10,7 @@ import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -55,4 +56,13 @@ public interface ICarMaintenanceService extends IService<CarMaintenanceEntity> {
* @param response 响应类 * @param response 响应类
*/ */
void exportCarMaintenanceData(Long id, HttpServletResponse response); void exportCarMaintenanceData(Long id, HttpServletResponse response);
/**
* 根据车辆id和时间查询相关维保记录
* @param carId 车辆id
* @param lastTime 上次维保时间
* @param nextTime 下次维保时间
* @return 车辆维保记录列表
*/
List<CarMaintenanceEntity> getCarMaintenanceByCarIdAndTime(Long carId, String lastTime, String nextTime);
} }

8
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java

@ -32,4 +32,12 @@ public interface ICarService extends IService<CarEntity> {
* @return 车辆列表数据 * @return 车辆列表数据
*/ */
List<CarEntity> getCarListByInsuranceTime(String today, String yesterday); List<CarEntity> getCarListByInsuranceTime(String today, String yesterday);
/**
* 根据维保时间查询车辆列表
* @param today 当天
* @param yesterday 昨天
* @return 车辆列表数据
*/
List<CarEntity> getCarListByMaintenanceTime(String today, String yesterday);
} }

8
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java

@ -9,6 +9,7 @@ import com.hnac.hzims.safeproduct.vo.CarUsedRecordPageVO;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import javax.servlet.http.HttpServletResponse;
import java.util.Map; import java.util.Map;
/** /**
@ -54,4 +55,11 @@ public interface ICarUsedRecordService extends IService<CarUsedRecordEntity> {
* @return true-成功false-失败 * @return true-成功false-失败
*/ */
boolean updateCarUsedRecord(CarUsedRecordEntity carUsedRecordEntity); boolean updateCarUsedRecord(CarUsedRecordEntity carUsedRecordEntity);
/**
* 导出用车记录单
* @param id 用车记录id
* @param response 响应类
*/
void exportCarUsedRecordData(Long id, HttpServletResponse response);
} }

20
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java

@ -15,18 +15,18 @@ import com.hnac.hzims.safeproduct.mapper.CarMapper;
import com.hnac.hzims.safeproduct.service.ICarCheckItemService; import com.hnac.hzims.safeproduct.service.ICarCheckItemService;
import com.hnac.hzims.safeproduct.service.ICarCheckRecordService; import com.hnac.hzims.safeproduct.service.ICarCheckRecordService;
import com.hnac.hzims.safeproduct.utils.BaseUtil; import com.hnac.hzims.safeproduct.utils.BaseUtil;
import com.hnac.hzims.safeproduct.vo.CarCheckItemVO;
import com.hnac.hzims.safeproduct.vo.CarCheckRecordDetailVO; import com.hnac.hzims.safeproduct.vo.CarCheckRecordDetailVO;
import com.hnac.hzims.safeproduct.vo.CarCheckRecordPageVO; import com.hnac.hzims.safeproduct.vo.CarCheckRecordPageVO;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -46,6 +46,9 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
@Autowired @Autowired
ICarCheckItemService carCheckItemService; ICarCheckItemService carCheckItemService;
@Value("${hzims.car.savePath}")
private String savePath;
/** /**
* 新增车检记录 * 新增车检记录
*/ */
@ -177,4 +180,17 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
} }
return false; return false;
} }
/**
* 导出车检记录单
*/
@Override
public void exportCarCheckRecordData(Long id, HttpServletResponse response) {
CarCheckRecordEntity carCheckRecordEntity = this.getById(id);
Map<String, Object> params = BaseUtil.obj2Map(carCheckRecordEntity);
String templateFile = "template/车检记录单.docx";
String wordPath = savePath + "/车检记录单.docx";
String pdfPath = savePath + "/车检记录单.pdf";
BaseUtil.exportDocument(templateFile, params, wordPath, pdfPath, response);
}
} }

84
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java

@ -1,10 +1,7 @@
package com.hnac.hzims.safeproduct.service.impl; package com.hnac.hzims.safeproduct.service.impl;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.util.CollectionUtils; import com.alibaba.excel.util.CollectionUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -19,23 +16,15 @@ import com.hnac.hzims.safeproduct.service.ICarService;
import com.hnac.hzims.safeproduct.utils.BaseUtil; import com.hnac.hzims.safeproduct.utils.BaseUtil;
import com.hnac.hzims.safeproduct.vo.CarMaintenanceDetailVO; import com.hnac.hzims.safeproduct.vo.CarMaintenanceDetailVO;
import com.hnac.hzims.safeproduct.vo.CarMaintenancePageVO; import com.hnac.hzims.safeproduct.vo.CarMaintenancePageVO;
import com.hnac.hzims.ticket.constants.WorkTicketConstants;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -52,6 +41,9 @@ public class CarMaintenanceServiceImpl extends ServiceImpl<CarMaintenanceMapper,
@Autowired @Autowired
ICarService carService; ICarService carService;
@Value("${hzims.car.savePath}")
private String savePath;
/** /**
* 新增车辆维保记录 * 新增车辆维保记录
*/ */
@ -119,57 +111,25 @@ public class CarMaintenanceServiceImpl extends ServiceImpl<CarMaintenanceMapper,
@Override @Override
public void exportCarMaintenanceData(Long id, HttpServletResponse response) { public void exportCarMaintenanceData(Long id, HttpServletResponse response) {
CarMaintenanceEntity carMaintenanceEntity = this.getById(id); CarMaintenanceEntity carMaintenanceEntity = this.getById(id);
Map<String, Object> params = BaseUtil.convertObjectToMap(carMaintenanceEntity); Map<String, Object> params = BaseUtil.obj2Map(carMaintenanceEntity);
// String templateFile = "" String templateFile = "template/车辆维保记录单.docx";
try { String wordPath = savePath + "/车辆维保记录单.docx";
List<XWPFDocument> res = new ArrayList<>(); String pdfPath = savePath + "/车辆维保记录单.pdf";
XWPFDocument document = BaseUtil.fillDocument("template/", params); BaseUtil.exportDocument(templateFile, params, wordPath, pdfPath, response);
res.add(document);
BaseUtil.exportWord(res, "");
} catch (Exception e) {
throw new RuntimeException(e);
} }
// String pdfPath = this.getFileSavePath() + params.get("code") + "_" + params.get("addressEquName") +".pdf";
// AsposeUtil.wordToPdf(wordPath, pdfPath); /**
// PdfUtils.readPdf(response,pdfPath); * 根据车辆id和时间查询相关维保记录
// ServletOutputStream outputStream = null; */
// try { @Override
// outputStream = response.getOutputStream(); public List<CarMaintenanceEntity> getCarMaintenanceByCarIdAndTime(Long carId, String lastTime, String nextTime) {
// CarMaintenanceDetailVO carMaintenance = getCarMaintenance(id); QueryWrapper<CarMaintenanceEntity> queryWrapper = new QueryWrapper<>();
// // 设置响应头 queryWrapper.lambda().eq(CarMaintenanceEntity::getCarId, carId)
// // URLEncoder.encode防止中文乱码 .ge(CarMaintenanceEntity::getEndTime, lastTime)
// String fileName = URLEncoder.encode("车辆维保记录单", "UTF-8"); .le(CarMaintenanceEntity::getEndTime, nextTime)
// response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); .eq(CarMaintenanceEntity::getMaintenanceStatus, CarMaintenanceStatusEnum.MAINTAINED.getValue())
// response.setContentType("application/vnd.ms-excel"); .orderByDesc(CarMaintenanceEntity::getCreateTime);
// response.setCharacterEncoding("UTF-8"); return this.list(queryWrapper);
// List<CarMaintenanceDetailVO> dataList = new ArrayList<>();
// dataList.add(carMaintenance);
// String templatePath = "template/车辆维保记录单.xlsx";
// Resource resource = new ClassPathResource(templatePath);
// // ExcelWriter初始化
// ExcelWriter excelWriter = EasyExcel
// .write(response.getOutputStream(), CarMaintenanceDetailVO.class)
// .autoCloseStream(Boolean.TRUE)
// .withTemplate(resource.getInputStream())
// .build();
// WriteSheet writeSheet = EasyExcel.writerSheet(1, "车辆维保记录单").build();
// excelWriter.write(dataList, writeSheet);
// excelWriter.finish();
// } catch (Exception e) {
// // 重置response
// response.reset();
// response.setContentType("application/json");
// response.setCharacterEncoding("utf-8");
// throw new ServiceException("车辆维保记录单导出异常: " + e.getMessage());
// } finally {
// if (outputStream != null) {
// try {
// outputStream.close();
// } catch (IOException e) {
// log.error("车辆维保记录单导出响应头输出流关闭异常: " + e.getMessage());
// }
// }
// }
} }
/** /**

15
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java

@ -110,8 +110,19 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, CarEntity> implements
@Override @Override
public List<CarEntity> getCarListByInsuranceTime(String today, String yesterday) { public List<CarEntity> getCarListByInsuranceTime(String today, String yesterday) {
QueryWrapper<CarEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<CarEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().le(CarEntity::getInsurancePayLastTime, today) queryWrapper.lambda().lt(CarEntity::getInsurancePayNextTime, today)
.ge(CarEntity::getInsurancePayNextTime, today); .ge(CarEntity::getInsurancePayNextTime, yesterday);
return this.list(queryWrapper);
}
/**
* 根据维保时间查询车辆列表
*/
@Override
public List<CarEntity> getCarListByMaintenanceTime(String today, String yesterday) {
QueryWrapper<CarEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().lt(CarEntity::getMaintenanceNextTime, today)
.ge(CarEntity::getMaintenanceNextTime, yesterday);
return this.list(queryWrapper); return this.list(queryWrapper);
} }
} }

21
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java

@ -11,15 +11,20 @@ import com.hnac.hzims.safeproduct.entity.CarUsedRecordEntity;
import com.hnac.hzims.safeproduct.enums.CarUsedRecordEnum; import com.hnac.hzims.safeproduct.enums.CarUsedRecordEnum;
import com.hnac.hzims.safeproduct.mapper.CarUsedRecordMapper; import com.hnac.hzims.safeproduct.mapper.CarUsedRecordMapper;
import com.hnac.hzims.safeproduct.service.ICarUsedRecordService; import com.hnac.hzims.safeproduct.service.ICarUsedRecordService;
import com.hnac.hzims.safeproduct.utils.AsposeUtil;
import com.hnac.hzims.safeproduct.utils.BaseUtil; import com.hnac.hzims.safeproduct.utils.BaseUtil;
import com.hnac.hzims.safeproduct.vo.CarUsedRecordDetailVO; import com.hnac.hzims.safeproduct.vo.CarUsedRecordDetailVO;
import com.hnac.hzims.safeproduct.vo.CarUsedRecordPageVO; import com.hnac.hzims.safeproduct.vo.CarUsedRecordPageVO;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -33,6 +38,9 @@ import java.util.Map;
@Service @Service
public class CarUsedRecordServiceImpl extends ServiceImpl<CarUsedRecordMapper, CarUsedRecordEntity> implements ICarUsedRecordService { public class CarUsedRecordServiceImpl extends ServiceImpl<CarUsedRecordMapper, CarUsedRecordEntity> implements ICarUsedRecordService {
@Value("${hzims.car.savePath}")
private String savePath;
/** /**
* 新增用车记录 * 新增用车记录
*/ */
@ -98,6 +106,19 @@ public class CarUsedRecordServiceImpl extends ServiceImpl<CarUsedRecordMapper, C
} }
/** /**
* 导出用车记录单
*/
@Override
public void exportCarUsedRecordData(Long id, HttpServletResponse response) {
CarUsedRecordEntity carUsedRecordEntity = this.getById(id);
Map<String, Object> params = BaseUtil.obj2Map(carUsedRecordEntity);
String templateFile = "template/用车记录单.docx";
String wordPath = savePath + "/用车记录单.docx";
String pdfPath = savePath + "/用车记录单.pdf";
BaseUtil.exportDocument(templateFile, params, wordPath, pdfPath, response);
}
/**
* 查询是否存在同月编号 * 查询是否存在同月编号
* @param currentMonth 当月 * @param currentMonth 当月
* @return 存在则返回上一编号否则返回null * @return 存在则返回上一编号否则返回null

8
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygienePlanServiceImpl.java

@ -79,12 +79,20 @@ public class HygienePlanServiceImpl extends ServiceImpl<HygienePlanMapper, Hygie
QueryWrapper<HygienePlanEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<HygienePlanEntity> queryWrapper = new QueryWrapper<>();
String startTime = String.valueOf(param.get("scheduledStartTime")); String startTime = String.valueOf(param.get("scheduledStartTime"));
String endTime = String.valueOf(param.get("scheduledEndTime")); String endTime = String.valueOf(param.get("scheduledEndTime"));
String unit = String.valueOf(param.get("unit"));
String name = String.valueOf(param.get("name"));
if (!startTime.equals("null") && !startTime.equals("")) { if (!startTime.equals("null") && !startTime.equals("")) {
queryWrapper.lambda().ge(HygienePlanEntity::getScheduledStartTime, startTime); queryWrapper.lambda().ge(HygienePlanEntity::getScheduledStartTime, startTime);
} }
if (!endTime.equals("null") && !endTime.equals("")) { if (!endTime.equals("null") && !endTime.equals("")) {
queryWrapper.lambda().le(HygienePlanEntity::getScheduledEndTime, endTime); queryWrapper.lambda().le(HygienePlanEntity::getScheduledEndTime, endTime);
} }
if (!unit.equals("null") && !unit.equals("")) {
queryWrapper.lambda().like(HygienePlanEntity::getUnit, unit);
}
if (!name.equals("null") && !name.equals("")) {
queryWrapper.lambda().like(HygienePlanEntity::getName, name);
}
queryWrapper.lambda().orderByDesc(HygienePlanEntity::getCreateTime); queryWrapper.lambda().orderByDesc(HygienePlanEntity::getCreateTime);
return this.page(Condition.getPage(query), queryWrapper); return this.page(Condition.getPage(query), queryWrapper);
} }

12
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TestServiceImpl.java

@ -51,12 +51,13 @@ public class TestServiceImpl extends ServiceImpl<TestMapper, TestEntity> impleme
if (trainPlanEntity.getIsTest().equals(SafeProductConstant.TRAIN_PLAN_HAS_NO_TEST)) { if (trainPlanEntity.getIsTest().equals(SafeProductConstant.TRAIN_PLAN_HAS_NO_TEST)) {
return R.fail("该培训计划无法新增考试"); return R.fail("该培训计划无法新增考试");
} }
// 获取当月时间(yyyymm) // 获取当月时间
String currentMonth = DatePattern.SIMPLE_MONTH_FORMAT.format(new Date()); String currentNormMonth = DatePattern.NORM_MONTH_FORMAT.format(new Date());
String currentSimpleMonth = DatePattern.SIMPLE_MONTH_FORMAT.format(new Date());
// 查询是否存在同月编号 // 查询是否存在同月编号
String lastCode = getLastCode(currentMonth); String lastCode = getLastCode(currentNormMonth);
// 若不存在,新增编号 // 若不存在,新增编号
String code = BaseUtil.getUniqueCode("KSJL", lastCode, currentMonth); String code = BaseUtil.getUniqueCode("KSJL", lastCode, currentSimpleMonth);
testEntity.setCode(code); testEntity.setCode(code);
boolean saveTest = this.save(testEntity); boolean saveTest = this.save(testEntity);
// 若新增考试记录成功,添加相关的参考人员数据 // 若新增考试记录成功,添加相关的参考人员数据
@ -195,8 +196,7 @@ public class TestServiceImpl extends ServiceImpl<TestMapper, TestEntity> impleme
* @return 存在则返回上一编号否则返回null * @return 存在则返回上一编号否则返回null
*/ */
private String getLastCode(String currentMonth) { private String getLastCode(String currentMonth) {
String month = currentMonth.substring(currentMonth.length() - 2); List<TestEntity> list = getTestByMonth(currentMonth);
List<TestEntity> list = getTestByMonth(month);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return null; return null;
} }

12
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TrainRecordServiceImpl.java

@ -56,12 +56,13 @@ public class TrainRecordServiceImpl extends ServiceImpl<TrainRecordMapper, Train
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean saveTrainRecord(TrainRecordEntity trainRecordEntity) { public boolean saveTrainRecord(TrainRecordEntity trainRecordEntity) {
// 获取当月时间(yyyymm) // 获取当月时间
String currentMonth = DatePattern.SIMPLE_MONTH_FORMAT.format(new Date()); String currentNormMonth = DatePattern.NORM_MONTH_FORMAT.format(new Date());
String currentSimpleMonth = DatePattern.SIMPLE_MONTH_FORMAT.format(new Date());
// 查询是否存在同月编号 // 查询是否存在同月编号
String lastCode = getLastCode(currentMonth); String lastCode = getLastCode(currentNormMonth);
// 若不存在,新增编号 // 若不存在,新增编号
String code = BaseUtil.getUniqueCode("PXJL", lastCode, currentMonth); String code = BaseUtil.getUniqueCode("PXJL", lastCode, currentSimpleMonth);
trainRecordEntity.setCode(code); trainRecordEntity.setCode(code);
boolean save = this.save(trainRecordEntity); boolean save = this.save(trainRecordEntity);
// 若培训记录新增成功,修改培训计划状态为已完成 // 若培训记录新增成功,修改培训计划状态为已完成
@ -183,8 +184,7 @@ public class TrainRecordServiceImpl extends ServiceImpl<TrainRecordMapper, Train
* @return 存在则返回上一编号否则返回null * @return 存在则返回上一编号否则返回null
*/ */
private String getLastCode(String currentMonth) { private String getLastCode(String currentMonth) {
String month = currentMonth.substring(currentMonth.length() - 2); List<TrainRecordEntity> list = getTrainByMonth(currentMonth);
List<TrainRecordEntity> list = getTrainByMonth(month);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return null; return null;
} }

53
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/AsposeUtil.java

@ -0,0 +1,53 @@
package com.hnac.hzims.safeproduct.utils;
import cn.hutool.system.SystemUtil;
import com.aspose.words.Document;
import com.aspose.words.FontSettings;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import lombok.SneakyThrows;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
/**
*
*/
public class AsposeUtil {
/**
* 加载license 用于破解 不生成水印
*
* @author LCheng
* @date 2020/12/25 13:51
*/
@SneakyThrows
private static void getLicense() {
try (InputStream is = AsposeUtil.class.getClassLoader().getResourceAsStream("License.xml")) {
License license = new License();
license.setLicense(is);
}
}
/**
* word转pdf
*
* @param wordPath word文件保存的路径
* @param pdfPath 转换后pdf文件保存的路径
* @author LCheng
* @date 2020/12/25 13:51
*/
@SneakyThrows
public static void wordToPdf(String wordPath, String pdfPath) {
getLicense();
File file = new File(pdfPath);
try (FileOutputStream os = new FileOutputStream(file)) {
if(SystemUtil.getOsInfo().isLinux()) {
FontSettings.setFontsFolder("/usr/share/fonts/chinese", true);
}
Document doc = new Document(wordPath);
doc.save(os, SaveFormat.PDF);
}
}
}

159
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/BaseUtil.java

@ -2,16 +2,21 @@ package com.hnac.hzims.safeproduct.utils;
import cn.afterturn.easypoi.word.WordExportUtil; import cn.afterturn.easypoi.word.WordExportUtil;
import com.hnac.hzims.common.logs.utils.StringUtils; import com.hnac.hzims.common.logs.utils.StringUtils;
import com.hnac.hzims.ticket.annotation.DateTimeToMap;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.ObjectUtil;
import java.io.FileNotFoundException; import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream; import java.io.*;
import java.io.IOException;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.HashMap; import java.net.URLEncoder;
import java.util.List; import java.time.LocalDateTime;
import java.util.Map; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 公用工具类 * 公用工具类
@ -50,26 +55,6 @@ public class BaseUtil {
} }
/** /**
* 对象转map
* @param entity 对象
* @return map
*/
public static Map<String, Object> convertObjectToMap(Object entity) {
Map<String, Object> map = new HashMap<>();
Field[] fields = entity.getClass().getFields();
try {
for (Field field : fields) {
field.setAccessible(true);
Object value = field.get(entity);
map.put(field.getName(), value);
}
} catch (IllegalAccessException e) {
log.info("对象转map异常: {}", e.getMessage());
}
return map;
}
/**
* 文件导出 * 文件导出
* @param documents doc文件 * @param documents doc文件
* @param savePath 存储路径 * @param savePath 存储路径
@ -81,7 +66,6 @@ public class BaseUtil {
for (XWPFDocument document : documents) { for (XWPFDocument document : documents) {
document.write(out); document.write(out);
} }
out.close();
} catch (IOException e) { } catch (IOException e) {
log.error("文件导出异常: {}", e.getMessage()); log.error("文件导出异常: {}", e.getMessage());
} finally { } finally {
@ -109,4 +93,125 @@ public class BaseUtil {
} }
return xwpfDocument; return xwpfDocument;
} }
/**
* 读取本地pdf,这里设置的是预览
* @param response 响应类
* @param filePath 文件路径
*/
public static void readPdf(HttpServletResponse response, String filePath) {
response.reset();
response.setContentType("application/pdf");
FileInputStream fileInputStream = null;
OutputStream outputStream = null;
try {
File file = new File(filePath);
fileInputStream = new FileInputStream(file);
outputStream = response.getOutputStream();
IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream);
response.setHeader("Content-Disposition",
"inline; filename= " + URLEncoder.encode(file.getName(), "UTF-8"));
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileInputStream != null) {
fileInputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static Map<String, Object> obj2Map(Object obj) {
if(ObjectUtil.isNotEmpty(obj) && null != obj.getClass()) {
Map<String, Object> result = new HashMap<>();
List<Field> fieldList = new ArrayList<>();
Class<?> clazz = obj.getClass();
while(clazz != null) {
fieldList.addAll(Arrays.asList(clazz.getDeclaredFields()));
clazz = clazz.getSuperclass();
}
fieldList.forEach(field -> {
field.setAccessible(true);
Object value;
try {
value = field.get(obj);
} catch (IllegalAccessException e) {
throw new ServiceException("获取属性性出错");
}
if(value instanceof List) {
List<Map<String, Object>> list = ((List<?>) value).stream().map(BaseUtil::obj2Map).collect(Collectors.toList());
result.put(field.getName(),list);
}
else if(value instanceof LocalDateTime) {
DateTimeToMap dateTimeToMap = field.getAnnotation(DateTimeToMap.class);
LocalDateTime time = (LocalDateTime) value;
if(ObjectUtil.isEmpty(dateTimeToMap)) {
result.put(field.getName(),time.format(DateUtil.TIME_FORMATTER));
}
else {
result.putAll(LocalDateConvertMap(time,dateTimeToMap.prefix(),dateTimeToMap.split()));
}
}
else if(value instanceof Date) {
DateTimeToMap dateTimeToMap = field.getAnnotation(DateTimeToMap.class);
Date time = (Date) value;
if(ObjectUtil.isEmpty(dateTimeToMap)) {
result.put(field.getName(),DateUtil.format(time,DateUtil.PATTERN_DATETIME));
}
else {
result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"year", time.getYear());
result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"month", time.getMonth());
result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"day", time.getDay());
result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"hour", time.getHours());
result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"minuter", time.getMinutes());
result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"second", time.getSeconds());
}
}
else {
result.put(field.getName(),value);
}
});
return result;
}
return null;
}
/**
* 将时间按格式转化为map对象
* @param dateTime 待转换时间
* @param prefix 转换格式Key前缀
* @param split 转换格式Key分隔符
* @return map对象
*/
public static Map<String, Object> LocalDateConvertMap(LocalDateTime dateTime,String prefix,String split) {
HashMap<String, Object> result = new HashMap<String, Object>() {{
put(prefix + split + "year", dateTime.getYear());
put(prefix + split + "month", dateTime.getMonthValue());
put(prefix + split + "day", dateTime.getDayOfMonth());
put(prefix + split + "hour", dateTime.getHour());
put(prefix + split + "minuter", dateTime.getMinute());
put(prefix + split + "second", dateTime.getSecond());
}};
return result;
}
public static void exportDocument(String templateFile, Map<String, Object> params, String wordPath, String pdfPath, HttpServletResponse response) {
try {
List<XWPFDocument> res = new ArrayList<>();
XWPFDocument document = BaseUtil.fillDocument(templateFile, params);
res.add(document);
BaseUtil.exportWord(res, wordPath);
} catch (Exception e) {
throw new RuntimeException(e);
}
AsposeUtil.wordToPdf(wordPath, pdfPath);
BaseUtil.readPdf(response,pdfPath);
}
} }

15
hzims-service/safeproduct/src/main/resources/License.xml

@ -0,0 +1,15 @@
<License>
<Data>
<Products>
<Product>Aspose.Total for Java</Product>
<Product>Aspose.Words for Java</Product>
</Products>
<EditionType>Enterprise</EditionType>
<SubscriptionExpiry>20991231</SubscriptionExpiry>
<LicenseExpiry>20991231</LicenseExpiry>
<SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
</Data>
<Signature>
sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=
</Signature>
</License>

BIN
hzims-service/safeproduct/src/main/resources/template/车辆维保记录单.docx

Binary file not shown.
Loading…
Cancel
Save