Browse Source

add: 车检记录模板

zhongwei
liwen 6 months ago
parent
commit
a0645f08a5
  1. 25
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarCheckTemplateDTO.java
  2. 39
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckTemplateDetailEntity.java
  3. 26
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckTemplateEntity.java
  4. 25
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckTemplateDetailVO.java
  5. 13
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/feedback/mapper/UserFeedbackMapper.xml
  6. 69
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java
  7. 15
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateDetailMapper.java
  8. 5
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateDetailMapper.xml
  9. 20
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateMapper.java
  10. 61
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckTemplateService.java
  11. 59
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java
  12. 37
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckTemplateDetailServiceImpl.java
  13. 161
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckTemplateServiceImpl.java
  14. 28
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/ICarCheckTemplateDetailService.java
  15. 30
      hzims-service/safeproduct/src/main/resources/db/2.0.1.sql

25
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarCheckTemplateDTO.java

@ -0,0 +1,25 @@
package com.hnac.hzims.safeproduct.dto;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @date 2024-05-30
*/
@Data
@ApiModel(value = "车检记录模板DTO类")
public class CarCheckTemplateDTO {
@ApiModelProperty("模板id")
private Long id;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("模板详情列表")
private List<CarCheckTemplateDetailEntity> detailList;
}

39
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckTemplateDetailEntity.java

@ -0,0 +1,39 @@
package com.hnac.hzims.safeproduct.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 车检模板详情服务类
*
* @date 2024-05-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hzims_car_check_template_detail")
@ApiModel(value = "车检模板详情实体类")
public class CarCheckTemplateDetailEntity extends BaseEntity {
@ApiModelProperty("车检记录id")
private Long templateId;
@NotNull
@Size(max = 500, message = "检查项目长度不能超过50")
@ApiModelProperty("检查项目")
private String checkItem;
@NotNull
@ApiModelProperty("检查内容")
private String checkContent;
@NotNull
@ApiModelProperty("检查结果")
private String checkResult;
}

26
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckTemplateEntity.java

@ -0,0 +1,26 @@
package com.hnac.hzims.safeproduct.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
/**
* @date 2024-05-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hzims_car_check_template")
@ApiModel(value = "车检模板实体类")
public class CarCheckTemplateEntity extends BaseEntity {
@ApiModelProperty("模板名称")
private String templateName;
@TableField(exist = false)
@ApiModelProperty("创建机构名称")
private String createDeptName;
}

25
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckTemplateDetailVO.java

@ -0,0 +1,25 @@
package com.hnac.hzims.safeproduct.vo;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @date 2024-05-30
*/
@Data
@ApiModel(value = "车检模板详情VO类")
public class CarCheckTemplateDetailVO {
@ApiModelProperty("模板id")
private Long id;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("模板详情列表")
private List<CarCheckTemplateDetailEntity> templateDetailList;
}

13
hzims-service/operational/src/main/java/com/hnac/hzims/operational/feedback/mapper/UserFeedbackMapper.xml

@ -2,4 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.operational.feedback.mapper.UserFeedbackMapper"> <mapper namespace="com.hnac.hzims.operational.feedback.mapper.UserFeedbackMapper">
<select id="getCarCheckTemplatePage" resultType="com.hnac.hzims.safeproduct.entity.CarCheckTemplateEntity">
SELECT
*
FROM
car_check_template_detail
WHERE
is_deleted = 0
<if test="param.templateName != null and param.templateName != ''">
AND template_name like concate('%', #{param.templateName}, '%')
</if>
ORDER BY
create_time DESC
</select>
</mapper> </mapper>

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

@ -5,6 +5,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.hnac.hzims.common.utils.Condition; import com.hnac.hzims.common.utils.Condition;
import com.hnac.hzims.safeproduct.Constants; import com.hnac.hzims.safeproduct.Constants;
import com.hnac.hzims.safeproduct.dto.CarCheckRecordDTO; import com.hnac.hzims.safeproduct.dto.CarCheckRecordDTO;
import com.hnac.hzims.safeproduct.dto.CarCheckTemplateDTO;
import com.hnac.hzims.safeproduct.dto.CarMaintenanceConfirmationDTO; import com.hnac.hzims.safeproduct.dto.CarMaintenanceConfirmationDTO;
import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO; import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO;
import com.hnac.hzims.safeproduct.entity.*; import com.hnac.hzims.safeproduct.entity.*;
@ -54,6 +55,8 @@ public class CarController extends BladeController {
private final ICarInsuranceService carInsuranceService; private final ICarInsuranceService carInsuranceService;
private final ICarCheckTemplateService carCheckTemplateService;
@PostMapping("/saveCar") @PostMapping("/saveCar")
@ApiOperation(value = "新增车辆") @ApiOperation(value = "新增车辆")
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ -269,31 +272,47 @@ public class CarController extends BladeController {
return R.data(page); return R.data(page);
} }
// @ApiOperation(value = "新增车检记录模板") @PostMapping("/saveCarCheckTemplate")
// @ApiOperationSupport(order = 39) @ApiOperation(value = "新增车检模板")
// public R saveCarCheckRecordTemplate() { @ApiOperationSupport(order = 39)
// @Operate(label = "新增车检模板", type = BusinessType.INSERT, ignore = false)
// } public R saveCarCheckTemplate(@RequestBody CarCheckTemplateDTO dto) {
// return R.status(carCheckTemplateService.saveCarCheckTemplate(dto));
// @ApiOperationSupport(order = 40) }
// public R updateCarCheckRecordTemplate() {
// @PostMapping("/updateCarCheckTemplate")
// } @ApiOperation(value = "修改车检模板")
// @ApiOperationSupport(order = 40)
// @ApiOperationSupport(order = 41) @Operate(label = "修改车检模板", type = BusinessType.UPDATE, ignore = false)
// public R removeCarCheckRecordTemplate() { public R updateCarCheckTemplate(@RequestBody CarCheckTemplateDTO dto) {
// return R.status(carCheckTemplateService.updateCarCheckTemplate(dto));
// } }
//
// @ApiOperationSupport(order = 42) @GetMapping("/removeCarCheckTemplate")
// public R carCheckRecordTemplateDetail() { @ApiOperation(value = "删除车检模板")
// @ApiOperationSupport(order = 41)
// } @Operate(label = "删除车检模板", type = BusinessType.DELETE, ignore = false)
// public R removeCarCheckTemplate(@RequestParam Long id) {
// @ApiOperationSupport(order = 43) return R.status(carCheckTemplateService.removeCarCheckTemplate(id));
// public R carCheckRecordTemplatePage() { }
//
// } @GetMapping("/carCheckTemplateDetail")
@ApiOperation(value = "车检模板详情")
@ApiOperationSupport(order = 42)
@Operate(label = "车检模板详情", type = BusinessType.QUERY, ignore = false)
public R<CarCheckTemplateDetailVO> carCheckTemplateDetail(@RequestParam Long id) {
CarCheckTemplateDetailVO vo = carCheckTemplateService.getCarCheckTemplateDetail(id);
return R.data(vo);
}
@GetMapping("/carCheckTemplatePage")
@ApiOperation(value = "车检模板分页")
@ApiOperationSupport(order = 43)
@Operate(label = "车检模板分页", type = BusinessType.QUERY, ignore = false)
public R<IPage<CarCheckTemplateEntity>> carCheckTemplatePage(@ApiIgnore @RequestParam Map<String, Object> param, Query query) {
IPage<CarCheckTemplateEntity> page = carCheckTemplateService.getCarCheckTemplatePage(query, param);
return R.data(page);
}
@GetMapping("/exportCarMaintenanceData") @GetMapping("/exportCarMaintenanceData")
@ApiOperation(value = "导出车辆维保记录单") @ApiOperation(value = "导出车辆维保记录单")

15
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateDetailMapper.java

@ -0,0 +1,15 @@
package com.hnac.hzims.safeproduct.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 车检模板详情Mapper类
*
* @date 2024-05-30
*/
@Mapper
public interface CarCheckTemplateDetailMapper extends BaseMapper<CarCheckTemplateDetailEntity> {
}

5
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateDetailMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.safeproduct.mapper.CarCheckTemplateDetailMapper">
</mapper>

20
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateMapper.java

@ -0,0 +1,20 @@
package com.hnac.hzims.safeproduct.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
@Mapper
public interface CarCheckTemplateMapper extends BaseMapper<CarCheckTemplateEntity> {
/**
* 车检分页
* @param page 分页类
* @param param 参数
* @return 分页
*/
IPage<CarCheckTemplateEntity> getCarCheckTemplatePage(IPage<CarCheckTemplateEntity> page, Map<String, Object> param);
}

61
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckTemplateService.java

@ -0,0 +1,61 @@
package com.hnac.hzims.safeproduct.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hnac.hzims.safeproduct.dto.CarCheckTemplateDTO;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateEntity;
import com.hnac.hzims.safeproduct.vo.CarCheckTemplateDetailVO;
import org.springblade.core.mp.support.Query;
import java.util.Map;
/**
* 车检模板服务类
*
* @date 2024-05-28
*/
public interface ICarCheckTemplateService extends IService<CarCheckTemplateEntity> {
/**
* 新增车检模板
* @param dto 车检模板dto类
* @return true-成功false-失败
*/
boolean saveCarCheckTemplate(CarCheckTemplateDTO dto);
/**
* 根据名称获取车检模板
* @param name 模板名称
* @return 车检模板实体类
*/
CarCheckTemplateEntity getCarCheckTemplateByName(String name);
/**
* 修改车检模板
* @param dto 车检模板dto类
* @return true-成功false-失败
*/
boolean updateCarCheckTemplate(CarCheckTemplateDTO dto);
/**
* 删除车检模板
* @param id 模板id
* @return true-成功false-失败
*/
boolean removeCarCheckTemplate(Long id);
/**
* 车检模板详情
* @param id 模板id
* @return 模板详情VO类
*/
CarCheckTemplateDetailVO getCarCheckTemplateDetail(Long id);
/**
* 车检分页
* @param query 分页类
* @param param 参数
* @return 分页
*/
IPage<CarCheckTemplateEntity> getCarCheckTemplatePage(Query query, Map<String, Object> param);
}

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

@ -18,6 +18,7 @@ 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.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.log.exception.ServiceException;
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;
@ -68,16 +69,17 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
String lastCode = getLastCode(currentNormMonth); String lastCode = getLastCode(currentNormMonth);
String code = BaseUtil.getUniqueCode("CLJC", lastCode, currentSimpleMonth); String code = BaseUtil.getUniqueCode("CLJC", lastCode, currentSimpleMonth);
carCheckRecordEntity.setCode(code); carCheckRecordEntity.setCode(code);
// 新增车检记录成功,新增相关检查项数据 // 新增车检记录
boolean saveRecord = this.save(carCheckRecordEntity); boolean saveRecord = this.save(carCheckRecordEntity);
if (saveRecord) { if (!saveRecord) {
throw new ServiceException("车检记录新增失败");
}
// 新增车检项
CarCheckRecordEntity recordEntity = getCarCheckRecordByCode(code); CarCheckRecordEntity recordEntity = getCarCheckRecordByCode(code);
List<CarCheckItemEntity> itemList = carCheckRecordDTO.getItemList(); List<CarCheckItemEntity> itemList = carCheckRecordDTO.getItemList();
itemList.forEach(x -> x.setCarCheckRecordId(recordEntity.getId())); itemList.forEach(x -> x.setCarCheckRecordId(recordEntity.getId()));
return carCheckItemService.saveBatch(itemList); return carCheckItemService.saveBatch(itemList);
} }
return false;
}
/** /**
* 车检记录详情 * 车检记录详情
@ -104,7 +106,19 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
} }
// 拼装检查列表 // 拼装检查列表
List<CarCheckItemEntity> itemList = carCheckItemService.getListByCarCheckRecordId(id); List<CarCheckItemEntity> itemList = carCheckItemService.getListByCarCheckRecordId(id);
carCheckRecordDetailVO.setCheckItemList(itemList); List<CarCheckItemEntity> checkItemList = new ArrayList<>();
itemList.forEach(item -> {
String[] contents = item.getCheckContent().split(",|,");
String[] results = item.getCheckResult().split(",|,");
for (int i = 0; i < contents.length; i++) {
CarCheckItemEntity carCheckItemEntity = new CarCheckItemEntity();
carCheckItemEntity.setCheckItem(item.getCheckItem());
carCheckItemEntity.setCheckContent(contents[i]);
carCheckItemEntity.setCheckResult(results[i]);
checkItemList.add(carCheckItemEntity);
}
});
carCheckRecordDetailVO.setCheckItemList(checkItemList);
return carCheckRecordDetailVO; return carCheckRecordDetailVO;
} }
return null; return null;
@ -157,22 +171,25 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean updateCarCheckRecord(CarCheckRecordDTO carCheckRecordDTO) { public boolean updateCarCheckRecord(CarCheckRecordDTO carCheckRecordDTO) {
boolean deleteFlag = carCheckItemService.removeRelativeCarCheckItem(carCheckRecordDTO.getId()); // 修改车检记录
if (!deleteFlag){
return false;
}
// 更新检查项
List<CarCheckItemEntity> itemList = carCheckRecordDTO.getItemList();
itemList.forEach(x -> {x.setCarCheckRecordId(carCheckRecordDTO.getId());
x.setId(null);});
boolean b = carCheckItemService.saveBatch(itemList);
if (b) {
// 若更新检查项成功,则更新车检记录
CarCheckRecordEntity carCheckRecordEntity = new CarCheckRecordEntity(); CarCheckRecordEntity carCheckRecordEntity = new CarCheckRecordEntity();
BeanUtil.copyProperties(carCheckRecordDTO, carCheckRecordEntity); BeanUtil.copyProperties(carCheckRecordDTO, carCheckRecordEntity);
return this.updateById(carCheckRecordEntity); boolean updateRecord = this.updateById(carCheckRecordEntity);
if (!updateRecord) {
throw new ServiceException("车检记录更新失败");
} }
return false; // 删除旧的检查项
boolean deleteItem = carCheckItemService.removeRelativeCarCheckItem(carCheckRecordDTO.getId());
if (!deleteItem) {
throw new ServiceException("旧的车检记录检查项删除失败");
}
// 新增新的检查项
List<CarCheckItemEntity> itemList = carCheckRecordDTO.getItemList();
itemList.forEach(x -> {
x.setCarCheckRecordId(carCheckRecordDTO.getId());
// x.setId(null);
});
return carCheckItemService.saveBatch(itemList);
} }
/** /**
@ -182,10 +199,10 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
@Override @Override
public boolean removeCarCheckRecord(Long id) { public boolean removeCarCheckRecord(Long id) {
boolean remove = this.removeById(id); boolean remove = this.removeById(id);
if (remove) { if (!remove) {
return carCheckItemService.removeRelativeCarCheckItem(id); throw new ServiceException("车检记录删除失败");
} }
return false; return carCheckItemService.removeRelativeCarCheckItem(id);
} }
/** /**

37
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckTemplateDetailServiceImpl.java

@ -0,0 +1,37 @@
package com.hnac.hzims.safeproduct.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import com.hnac.hzims.safeproduct.mapper.CarCheckTemplateDetailMapper;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* 车检模板详情服务实现类
*
* @date 2024-05-30
*/
@Service
public class CarCheckTemplateDetailServiceImpl extends ServiceImpl<CarCheckTemplateDetailMapper, CarCheckTemplateDetailEntity>
implements ICarCheckTemplateDetailService {
/**
* 删除关联的模板详情数据
*/
@Override
public boolean removeReferenceDetail(Long templateId) {
List<CarCheckTemplateDetailEntity> list = this.getReferenceDetail(templateId);
List<Long> ids = list.stream().map(CarCheckTemplateDetailEntity::getId).collect(Collectors.toList());
return this.removeByIds(ids);
}
@Override
public List<CarCheckTemplateDetailEntity> getReferenceDetail(Long templateId) {
QueryWrapper<CarCheckTemplateDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarCheckTemplateDetailEntity::getTemplateId, templateId);
return this.list(queryWrapper);
}
}

161
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckTemplateServiceImpl.java

@ -0,0 +1,161 @@
package com.hnac.hzims.safeproduct.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hnac.hzims.safeproduct.dto.CarCheckTemplateDTO;
import com.hnac.hzims.safeproduct.entity.*;
import com.hnac.hzims.safeproduct.mapper.CarCheckTemplateMapper;
import com.hnac.hzims.safeproduct.service.ICarCheckTemplateService;
import com.hnac.hzims.safeproduct.vo.CarCheckTemplateDetailVO;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.system.feign.ISysClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 车检模板服务实现类
*
* @date 2024-05-28
*/
@Service
public class CarCheckTemplateServiceImpl extends ServiceImpl<CarCheckTemplateMapper, CarCheckTemplateEntity> implements ICarCheckTemplateService {
@Autowired
ICarCheckTemplateDetailService carCheckTemplateDetailService;
@Resource
CarCheckTemplateMapper carCheckTemplateMapper;
@Autowired
ISysClient sysClient;
/**
* 新增车检模板
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveCarCheckTemplate(CarCheckTemplateDTO dto) {
String templateName = dto.getTemplateName();
// 重名校验
CarCheckTemplateEntity template = getCarCheckTemplateByName(templateName);
if (template != null) {
throw new ServiceException("模板名不可重复");
}
// 新增车检模板
CarCheckTemplateEntity templateEntity = new CarCheckTemplateEntity();
templateEntity.setTemplateName(templateName);
boolean saveTemplate = this.save(templateEntity);
if (!saveTemplate) {
throw new ServiceException("车检模板新增失败");
}
// 新增模板详情
template = getCarCheckTemplateByName(templateName);
List<CarCheckTemplateDetailEntity> details = dto.getDetailList();
for (CarCheckTemplateDetailEntity detail : details) {
detail.setTemplateId(template.getId());
}
return carCheckTemplateDetailService.saveBatch(details);
}
/**
* 根据名称获取车检模板
*/
public CarCheckTemplateEntity getCarCheckTemplateByName(String name) {
QueryWrapper<CarCheckTemplateEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarCheckTemplateEntity::getTemplateName, name);
return this.getOne(queryWrapper);
}
/**
* 修改车检模板
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateCarCheckTemplate(CarCheckTemplateDTO dto) {
String templateName = dto.getTemplateName();
Long templateId = dto.getId();
// 重名校验
QueryWrapper<CarCheckTemplateEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarCheckTemplateEntity::getTemplateName, templateName);
queryWrapper.lambda().ne(CarCheckTemplateEntity::getId, templateId);
CarCheckTemplateEntity template = this.getOne(queryWrapper);
if (template != null) {
throw new ServiceException("模板名不可重复");
}
// 更新模板
CarCheckTemplateEntity templateEntity = new CarCheckTemplateEntity();
templateEntity.setId(templateId);
templateEntity.setTemplateName(templateName);
boolean updateTemplate = this.updateById(templateEntity);
if (!updateTemplate) {
throw new ServiceException("车检模板更新失败");
}
// 更新模板详情
// 删除旧的模板详情数据
boolean removeDetail = carCheckTemplateDetailService.removeReferenceDetail(templateId);
if (!removeDetail) {
throw new ServiceException("车检模板详情数据删除失败");
}
// 新增新的模板详情数据
List<CarCheckTemplateDetailEntity> detailList = dto.getDetailList();
for (CarCheckTemplateDetailEntity detail : detailList) {
detail.setTemplateId(templateId);
}
return carCheckTemplateDetailService.saveBatch(detailList);
}
/**
* 删除车检模板
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean removeCarCheckTemplate(Long id) {
boolean removeTemplate = this.removeById(id);
if (!removeTemplate) {
throw new ServiceException("车检模板删除失败");
}
return carCheckTemplateDetailService.removeReferenceDetail(id);
}
/**
* 车检模板详情
*/
@Override
public CarCheckTemplateDetailVO getCarCheckTemplateDetail(Long id) {
CarCheckTemplateEntity templateEntity = this.getById(id);
CarCheckTemplateDetailVO vo = new CarCheckTemplateDetailVO();
vo.setId(templateEntity.getId());
vo.setTemplateName(templateEntity.getTemplateName());
List<CarCheckTemplateDetailEntity> list = carCheckTemplateDetailService.getReferenceDetail(id);
vo.setTemplateDetailList(list);
return vo;
}
/**
* 车检分页
*/
@Override
public IPage<CarCheckTemplateEntity> getCarCheckTemplatePage(Query query, Map<String, Object> param) {
IPage<CarCheckTemplateEntity> page = new Page<>(query.getCurrent(), query.getSize());
IPage<CarCheckTemplateEntity> templatePage = carCheckTemplateMapper.getCarCheckTemplatePage(page, param);
List<CarCheckTemplateEntity> templateList = templatePage.getRecords();
// 获取机构名
templateList.forEach(template -> {
R<String> deptName = sysClient.getDeptName(template.getCreateDept());
if (deptName.isSuccess()) {
template.setCreateDeptName(deptName.getData());
}
});
templatePage.setRecords(templateList);
return templatePage;
}
}

28
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/ICarCheckTemplateDetailService.java

@ -0,0 +1,28 @@
package com.hnac.hzims.safeproduct.service.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import java.util.List;
/**
* 车检模板详情服务类
*
* @date 2024-05-30
*/
public interface ICarCheckTemplateDetailService extends IService<CarCheckTemplateDetailEntity> {
/**
* 删除关联的模板详情数据
* @param templateId 模板id
* @return true-成功false-失败
*/
boolean removeReferenceDetail(Long templateId);
/**
* 查询关联的模板详情列表
* @param templateId 模板id
* @return 模板详情列表
*/
List<CarCheckTemplateDetailEntity> getReferenceDetail(Long templateId);
}

30
hzims-service/safeproduct/src/main/resources/db/2.0.1.sql

@ -47,3 +47,33 @@ CREATE TABLE IF NOT EXISTS `hzims_hygiene_template_detail` (
-- 添加考试及格分字段 -- 添加考试及格分字段
ALTER TABLE hzims_test ALTER TABLE hzims_test
ADD COLUMN passing_score int(10) NOT NULL DEFAULT 60 COMMENT '考试及格分'; ADD COLUMN passing_score int(10) NOT NULL DEFAULT 60 COMMENT '考试及格分';
-- 新增车检模板表
CREATE TABLE IF NOT EXISTS `hzims_hygiene_template` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`template_name` varchar(50) NOT NULL COMMENT '模板名称',
`create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人',
`create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_user` bigint(20) DEFAULT '-1' COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`status` int(2) NOT NULL DEFAULT '1' COMMENT '状态',
`is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='车检模板表';
-- 新增车检模板详情表
CREATE TABLE IF NOT EXISTS `hzims_hygiene_template_detail` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`template_id` bigint(20) NOT NULL COMMENT '模板id',
`check_item` varchar(500) NOT NULL COMMENT '检查项目',
`check_content` mediumtext NOT NULL COMMENT '检查内容',
`create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人',
`create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_user` bigint(20) DEFAULT '-1' COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`status` int(2) NOT NULL DEFAULT '1' COMMENT '状态',
`is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='车检模板详情表';
Loading…
Cancel
Save