diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygieneTemplateDTO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygieneTemplateDTO.java new file mode 100644 index 0000000..0b590b5 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygieneTemplateDTO.java @@ -0,0 +1,25 @@ +package com.hnac.hzims.safeproduct.dto; + +import com.hnac.hzims.safeproduct.entity.HygieneTemplateDetailEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @date 2024-04-28 + */ +@Data +@ApiModel(value = "卫生自查模板DTO类") +public class HygieneTemplateDTO { + + @ApiModelProperty("模板id") + private Long templateId; + + @ApiModelProperty("模板名称") + private String templateName; + + @ApiModelProperty("模板详情列表") + private List templateDetailList; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneTemplateDetailEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneTemplateDetailEntity.java new file mode 100644 index 0000000..9fe501f --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneTemplateDetailEntity.java @@ -0,0 +1,30 @@ +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.Size; + +/** + * @date 2024-04-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hzims_hygiene_template_detail") +@ApiModel(value = "卫生自查模板详情表") +public class HygieneTemplateDetailEntity extends BaseEntity { + + @ApiModelProperty("模板id") + private Long templateId; + + @Size(max = 50, message = "责任区字段长度不能超过50") + @ApiModelProperty("责任区") + private String zone; + + @ApiModelProperty("检查项") + private String checkItem; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneTemplateEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneTemplateEntity.java new file mode 100644 index 0000000..9a82c8f --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneTemplateEntity.java @@ -0,0 +1,21 @@ +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; + +/** + * @date 2024-04-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hzims_hygiene_template") +@ApiModel(value = "卫生自查模板表") +public class HygieneTemplateEntity extends BaseEntity { + + @ApiModelProperty("模板名称") + private String templateName; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/HygieneTemplateDetailVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/HygieneTemplateDetailVO.java new file mode 100644 index 0000000..664105f --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/HygieneTemplateDetailVO.java @@ -0,0 +1,26 @@ +package com.hnac.hzims.safeproduct.vo; + +import com.hnac.hzims.safeproduct.entity.HygieneTemplateDetailEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author liwen + * @date 2024-04-30 + */ +@Data +@ApiModel(value = "卫生自查模板详情VO类") +public class HygieneTemplateDetailVO { + + @ApiModelProperty("模板id") + private Long id; + + @ApiModelProperty("模板名称") + private String templateName; + + @ApiModelProperty("模板详情列表") + private List templateDetailList; +} 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 a3913ca..e6c0c3e 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,16 +2,17 @@ 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.Constants; import com.hnac.hzims.safeproduct.dto.HygienePlanDTO; import com.hnac.hzims.safeproduct.dto.HygieneRecordDTO; +import com.hnac.hzims.safeproduct.dto.HygieneTemplateDTO; import com.hnac.hzims.safeproduct.entity.HygienePlanEntity; +import com.hnac.hzims.safeproduct.entity.HygieneTemplateEntity; import com.hnac.hzims.safeproduct.service.IHygienePlanService; import com.hnac.hzims.safeproduct.service.IHygieneRecordService; -import com.hnac.hzims.safeproduct.vo.HygienePlanDetailVO; -import com.hnac.hzims.safeproduct.vo.HygieneMonthVO; -import com.hnac.hzims.safeproduct.vo.HygieneRecordDetailVO; -import com.hnac.hzims.safeproduct.vo.HygieneRecordPageVO; +import com.hnac.hzims.safeproduct.service.IHygieneTemplateService; +import com.hnac.hzims.safeproduct.vo.*; import com.hnac.hzinfo.log.annotation.Business; import com.hnac.hzinfo.log.annotation.Operate; import com.hnac.hzinfo.log.contants.BusinessType; @@ -47,6 +48,8 @@ public class HygieneController extends BladeController { private final IHygieneRecordService hygieneRecordService; + private final IHygieneTemplateService hygieneTemplateService; + @PostMapping("/savePlan") @ApiOperation(value = "新增卫生自查计划") @ApiOperationSupport(order = 1) @@ -183,4 +186,50 @@ public class HygieneController extends BladeController { public void exportHygienePlanData(@ApiIgnore @RequestParam Map param, HttpServletResponse response) { hygienePlanService.exportHygienePlanData(param, response); } + + @PostMapping("/saveHygieneTemplate") + @ApiOperation(value = "新增卫生自查模板") + @ApiOperationSupport(order = 15) + @Operate(label = "新增卫生自查模板", type = BusinessType.INSERT, ignore = false) + public R saveHygieneTemplate(@RequestBody HygieneTemplateDTO hygieneTemplateDTO) { + boolean save = hygieneTemplateService.saveHygieneTemplate(hygieneTemplateDTO); + return R.status(save); + } + + @PostMapping("/updateHygieneTemplate") + @ApiOperation(value = "修改卫生自查模板") + @ApiOperationSupport(order = 16) + @Operate(label = "修改卫生自查模板", type = BusinessType.UPDATE, ignore = false) + public R updateHygieneTemplate(@RequestBody HygieneTemplateDTO hygieneTemplateDTO) { + boolean update = hygieneTemplateService.updateHygieneTemplate(hygieneTemplateDTO); + return R.status(update); + } + + @PostMapping("/removeHygieneTemplate") + @ApiOperation(value = "删除卫生自查模板") + @ApiOperationSupport(order = 17) + @Operate(label = "删除卫生自查模板", type = BusinessType.DELETE, ignore = false) + public R removeHygieneTemplate(@RequestParam Long id) { + boolean remove = hygieneTemplateService.removeHygieneTemplate(id); + return R.status(remove); + } + + @GetMapping("/hygieneTemplateDetail") + @ApiOperation(value = "卫生自查模板详情") + @ApiOperationSupport(order = 18) + @Operate(label = "卫生自查模板详情", type = BusinessType.QUERY, ignore = false) + public R hygieneTemplateDetail(@RequestParam Long id) { + HygieneTemplateDetailVO detail = hygieneTemplateService.getHygieneTemplateDetail(id); + return R.data(detail); + } + + @GetMapping("/hygieneTemplatePage") + @ApiOperation(value = "卫生自查模板分页") + @ApiOperationSupport(order = 19) + @Operate(label = "卫生自查模板分页", type = BusinessType.QUERY, ignore = false) + public R hygieneTemplatePage(@ApiIgnore @RequestParam Map param, Query query) { + IPage page = hygieneTemplateService.page(Condition.getPage(query), Condition.getQueryWrapper( + param, HygieneTemplateEntity.class)); + return R.data(page); + } } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateDetailMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateDetailMapper.java new file mode 100644 index 0000000..c6872e7 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateDetailMapper.java @@ -0,0 +1,15 @@ +package com.hnac.hzims.safeproduct.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hnac.hzims.safeproduct.entity.HygieneTemplateDetailEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 卫生自查模板详情Mapper类 + * + * @date 2024-04-29 + */ +@Mapper +public interface HygieneTemplateDetailMapper extends BaseMapper { + +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateDetailMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateDetailMapper.xml new file mode 100644 index 0000000..7b4bbbf --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateDetailMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateMapper.java new file mode 100644 index 0000000..1a76e7c --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateMapper.java @@ -0,0 +1,15 @@ +package com.hnac.hzims.safeproduct.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hnac.hzims.safeproduct.entity.HygieneTemplateEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 卫生自查模板Mapper类 + * + * @date 2024-04-29 + */ +@Mapper +public interface HygieneTemplateMapper extends BaseMapper { + +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateMapper.xml new file mode 100644 index 0000000..28b08b9 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneTemplateDetailService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneTemplateDetailService.java new file mode 100644 index 0000000..de71dad --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneTemplateDetailService.java @@ -0,0 +1,21 @@ +package com.hnac.hzims.safeproduct.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hnac.hzims.safeproduct.entity.HygieneTemplateDetailEntity; + +import java.util.List; + +/** + * 卫生自查模板详情服务类 + * + * @date 2024-04-29 + */ +public interface IHygieneTemplateDetailService extends IService { + + /** + * 根据模板id查找模板详情数据 + * @param templateId 模板id + * @return 模板详情列表 + */ + List getListByTemplateId(Long templateId); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneTemplateService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneTemplateService.java new file mode 100644 index 0000000..71493f9 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygieneTemplateService.java @@ -0,0 +1,42 @@ +package com.hnac.hzims.safeproduct.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hnac.hzims.safeproduct.dto.HygieneTemplateDTO; +import com.hnac.hzims.safeproduct.entity.HygieneTemplateEntity; +import com.hnac.hzims.safeproduct.vo.HygieneTemplateDetailVO; + +/** + * 卫生自查模板服务类 + * + * @date 2024-04-29 + */ +public interface IHygieneTemplateService extends IService { + + /** + * 新增卫生自查模板 + * @param hygieneTemplateDTO 卫生自查模板DTO类 + * @return true-成功,false-失败 + */ + boolean saveHygieneTemplate(HygieneTemplateDTO hygieneTemplateDTO); + + /** + * 修改卫生自查模板 + * @param hygieneTemplateDTO 卫生自查模板DTO类 + * @return true-成功,false-失败 + */ + boolean updateHygieneTemplate(HygieneTemplateDTO hygieneTemplateDTO); + + /** + * 删除卫生自查模板 + * @param id 卫生自查模板id + * @return true-成功,false-失败 + */ + boolean removeHygieneTemplate(Long id); + + /** + * 卫生自查模板详情 + * @param id 卫生自查模板id + * @return 详情 + */ + HygieneTemplateDetailVO getHygieneTemplateDetail(Long id); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneTemplateDetailServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneTemplateDetailServiceImpl.java new file mode 100644 index 0000000..3ea4851 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneTemplateDetailServiceImpl.java @@ -0,0 +1,30 @@ +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.HygieneTemplateDetailEntity; +import com.hnac.hzims.safeproduct.mapper.HygieneTemplateDetailMapper; +import com.hnac.hzims.safeproduct.service.IHygieneTemplateDetailService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 卫生自查模板详情服务实现类 + * + * @date 2024-04-29 + */ +@Service +public class HygieneTemplateDetailServiceImpl extends ServiceImpl + implements IHygieneTemplateDetailService { + + /** + * 根据模板id查找模板详情数据 + */ + @Override + public List getListByTemplateId(Long templateId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(HygieneTemplateDetailEntity::getTemplateId, templateId); + return this.list(queryWrapper); + } +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneTemplateServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneTemplateServiceImpl.java new file mode 100644 index 0000000..efceb94 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneTemplateServiceImpl.java @@ -0,0 +1,107 @@ +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.dto.HygieneTemplateDTO; +import com.hnac.hzims.safeproduct.entity.HygieneTemplateDetailEntity; +import com.hnac.hzims.safeproduct.entity.HygieneTemplateEntity; +import com.hnac.hzims.safeproduct.mapper.HygieneTemplateMapper; +import com.hnac.hzims.safeproduct.service.IHygieneTemplateDetailService; +import com.hnac.hzims.safeproduct.service.IHygieneTemplateService; +import com.hnac.hzims.safeproduct.vo.HygieneTemplateDetailVO; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 卫生自查模板服务实现类 + * + * @date 2024-04-29 + */ +@Service +public class HygieneTemplateServiceImpl extends ServiceImpl implements IHygieneTemplateService { + + @Autowired + IHygieneTemplateDetailService hygieneTemplateDetailService; + + /** + * 新增卫生自查模板 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public boolean saveHygieneTemplate(HygieneTemplateDTO hygieneTemplateDTO) { + String templateName = hygieneTemplateDTO.getTemplateName(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(HygieneTemplateEntity::getTemplateName, templateName); + List list = this.list(queryWrapper); + if (CollectionUtil.isNotEmpty(list)) { + throw new ServiceException("模板名不可重复"); + } + HygieneTemplateEntity hygieneTemplate = new HygieneTemplateEntity(); + hygieneTemplate.setTemplateName(templateName); + boolean saveTemplate = this.save(hygieneTemplate); + if (!saveTemplate) { + throw new ServiceException("卫生自查模板新增失败"); + } + return hygieneTemplateDetailService.saveBatch(hygieneTemplateDTO.getTemplateDetailList()); + } + + /** + * 修改卫生自查模板 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public boolean updateHygieneTemplate(HygieneTemplateDTO hygieneTemplateDTO) { + String templateName = hygieneTemplateDTO.getTemplateName(); + Long templateId = hygieneTemplateDTO.getTemplateId(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(HygieneTemplateEntity::getTemplateName, templateName); + queryWrapper.lambda().ne(HygieneTemplateEntity::getId, templateId); + List list = this.list(queryWrapper); + if (CollectionUtil.isNotEmpty(list)) { + throw new ServiceException("模板名不可重复"); + } + HygieneTemplateEntity hygieneTemplate = new HygieneTemplateEntity(); + hygieneTemplate.setId(templateId); + hygieneTemplate.setTemplateName(templateName); + boolean updateTemplate = this.updateById(hygieneTemplate); + if (!updateTemplate) { + throw new ServiceException("卫生自查模板修改失败"); + } + return hygieneTemplateDetailService.updateBatchById(hygieneTemplateDTO.getTemplateDetailList()); + } + + /** + * 删除卫生自查模板 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public boolean removeHygieneTemplate(Long id) { + boolean removeTemplate = this.removeById(id); + if (!removeTemplate) { + throw new ServiceException("卫生自查模板删除失败"); + } + List details = hygieneTemplateDetailService.getListByTemplateId(id); + List ids = details.stream().map(HygieneTemplateDetailEntity::getId).collect(Collectors.toList()); + return hygieneTemplateDetailService.removeByIds(ids); + } + + /** + * 卫生自查模板详情 + */ + @Override + public HygieneTemplateDetailVO getHygieneTemplateDetail(Long id) { + HygieneTemplateDetailVO hygieneTemplateDetailVO = new HygieneTemplateDetailVO(); + HygieneTemplateEntity hygieneTemplate = this.getById(id); + BeanUtils.copyProperties(hygieneTemplate, hygieneTemplateDetailVO); + List details = hygieneTemplateDetailService.getListByTemplateId(id); + hygieneTemplateDetailVO.setTemplateDetailList(details); + return hygieneTemplateDetailVO; + } +}