ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java
@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ltkj.common.core.redis.RedisCache; import com.ltkj.common.utils.IdUtils; import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.service.*; @@ -63,6 +64,8 @@ private ITbTransitionService tbTransitionService; @Autowired private LisApiMethod lisApiMethod; @Autowired private IdUtils idUtils; /** * 查询体检采样管理列表 @@ -188,6 +191,7 @@ /** * 获取采样客户列表 * * @param isSignFor * @param tjNum * @param name @@ -237,6 +241,7 @@ /** * 根据客户获取采样列表 * * @param cusId * @return */ @@ -244,35 +249,38 @@ @ApiOperation(value = "根据客户获取采样列表") public AjaxResult getCusCyList(@RequestParam @ApiParam(value = "客户id") String cusId){ if (cusId == null || StrUtil.isBlank(cusId)) return AjaxResult.error("参数错误"); return AjaxResult.error("参数错误,未传参数"); LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TjSampling::getCusId,cusId); wrapper.isNull(TjSampling::getParentId); wrapper.isNull(TjSampling::getParentId).or().eq(TjSampling::getIsMerge,1); wrapper.orderByDesc(TjSampling::getIsMerge); List<TjSampling> list = tjSamplingService.list(wrapper); if (list.isEmpty()) return AjaxResult.error("参数错误"); if (list.isEmpty()){ logger.info("cusId参数传的是:"+cusId); return AjaxResult.error("参数错误,未查询到数据"); } for (TjSampling sampling : list) { sampling.setCusName(MatchUtils.hideCusName(sampling.getCusName())); // sampling.setCusName(MatchUtils.hideCusName(sampling.getCusName())); sampling.setCusName(sampling.getCusName()); } return AjaxResult.success(list); } @GetMapping("/mergeCaiYang") @PostMapping("/mergeCaiYang") @ApiOperation(value = "采样登记合并项目接口") public AjaxResult mergeCaiYang(@RequestParam List<String> ids){ @Transactional public AjaxResult mergeCaiYang(@RequestBody List<String> ids) { if(null !=ids && !ids.isEmpty()){ if(ids.size()==1)return AjaxResult.error("请选择至少两条项目进行合并!"); int i = tjSamplingService.panduanshifoukeyihebing(ids); if(i>1){ return AjaxResult.error("标本类型不一致,不可合并"); } int pdsfczhbxm = tjSamplingService.pdsfczhbxm(ids); if (pdsfczhbxm == ids.size()) return AjaxResult.error("多个合并项目不可再继续合并!"); if (pdsfczhbxm > 1) return AjaxResult.error("最多允许选择一个合并过的项目!"); if (pdsfczhbxm == 0) { TjSampling tjSampling = tjSamplingService.getById(ids.get(0)); //todo 加一条判断是否存在合并项目的查询sql //todo 判断传入的项目是否存在合并项目 不存在走原逻辑 存在走else Map<String,Object> map= tjSamplingService.hebingCaiYangInFo(ids); TjSampling sampling=new TjSampling(); String proId = map.get("proId").toString(); @@ -281,19 +289,51 @@ sampling.setProId(proId); sampling.setProName(proName); sampling.setIsMerge(1); sampling.setJyxh(idUtils.generateLisID()); if (tjSamplingService.save(sampling)) { for (String id : ids) { TjSampling service = tjSamplingService.getById(id); service.setParentId(sampling.getId()); service.setIsMerge(1); tjSamplingService.updateById(service); } if (tjSamplingService.updateHeBingXm(ids, sampling.getId())) { return AjaxResult.success("合并项目成功!"); } } return AjaxResult.error("操作失败!"); } else { TjSampling tjSampling = tjSamplingService.getTjSamplingByHb(ids); List<TjSampling> samplingList = tjSamplingService.getTjSamplingListByHb(ids); if (null != tjSampling && null != samplingList && !samplingList.isEmpty()) { List<String> stringList = samplingList.stream().map(TjSampling::getId).collect(Collectors.toList()); Map<String, Object> map = tjSamplingService.hebingCaiYangInFo(stringList); String proId = map.get("proId").toString(); String proName = map.get("proName").toString(); tjSampling.setProId(proId); tjSampling.setProName(proName); if (tjSamplingService.updateById(tjSampling)) { if (tjSamplingService.updateHeBingXm(stringList, tjSampling.getParentId())) { return AjaxResult.success("合并项目成功!"); } } } return AjaxResult.error("操作失败!"); } } return AjaxResult.error("请选择你要合并的项目!!!"); } @PostMapping("/chexiaoCaiYang") @ApiOperation(value = "撤销采样登记合并项目接口") @Transactional public AjaxResult chexiaoCaiYang(@RequestBody List<String> ids) { if (null != ids && !ids.isEmpty()) { int pdsfczhbxm = tjSamplingService.pdsfczhbxm(ids); if (pdsfczhbxm != ids.size()) return AjaxResult.error("存在未合并的项目不可撤销!!!"); tjSamplingService.deletedTjSamplingListByHb(ids); tjSamplingService.updateHeBingXm(ids); return AjaxResult.success("撤销成功!!!"); } return AjaxResult.error("请选择你要撤销的项目!!!"); } /** * 导出体检采样管理列表 */ ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjSampling.java
@@ -2,6 +2,7 @@ import java.util.Date; import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; @@ -108,6 +109,7 @@ /** * 合并后的父id */ @TableField(updateStrategy = FieldStrategy.IGNORED) private String parentId; /** ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjSamplingMapper.java
@@ -6,9 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ltkj.hosp.domain.TjSampling; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.*; /** * 体检采样管理Mapper接口 @@ -82,4 +80,52 @@ "</foreach>", "GROUP BY a.specimen_type_code) aa" + "</script>"}) int panduanshifoukeyihebing(@Param("ids") List<String> ids); // @Update({"<script>","UPDATE tj_sampling a SET a.parent_id=#{parentId} WHERE a.id " + // "IN ","<foreach collection='ids' item='id' open='(' separator=',' close=')'>", // "#{id}", // "</foreach>", // "</script>"}) boolean updateHeBingXm(@Param("ids") List<String> ids,@Param("parentId")String parentId); @Select({"<script>","SELECT COUNT(*) FROM tj_sampling a " + "WHERE a.deleted=0 AND a.is_merge=1 AND a.id IN ","<foreach collection='ids' item='id' open='(' separator=',' close=')'>", "#{id}", "</foreach>", "</script>"}) int pdsfczhbxm(@Param("ids") List<String> ids); @Select({"<script>","SELECT * FROM tj_sampling a " + "WHERE a.deleted=0 AND a.is_merge=1 AND a.id IN ","<foreach collection='ids' item='id' open='(' separator=',' close=')'>", "#{id}", "</foreach>", "</script>"}) TjSampling getTjSamplingByHb(@Param("ids") List<String> ids); @Select({"<script>","SELECT * FROM tj_sampling a " + "WHERE a.deleted=0 AND !ISNULL(a.parent_id) AND a.is_merge=0 AND a.id IN ","<foreach collection='ids' item='id' open='(' separator=',' close=')'>", "#{id}", "</foreach>", "</script>"}) List<TjSampling> getTjSamplingListByHb(@Param("ids") List<String> ids); @Delete({"<script>","DELETE FROM tj_sampling WHERE id " + "IN ","<foreach collection='ids' item='id' open='(' separator=',' close=')'>", "#{id}", "</foreach>", "</script>"}) boolean deletedTjSamplingListByHb(@Param("ids") List<String> ids); // @Update({"<script>","UPDATE tj_sampling a SET a.parent_id=null WHERE a.id " + // "IN ","<foreach collection='ids' item='id' open='(' separator=',' close=')'>", // "#{id}", // "</foreach>", // "</script>"}) boolean updateHeBingXms(@Param("ids") List<String> ids); } ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjSamplingService.java
@@ -62,8 +62,27 @@ */ public int deleteTjSamplingById(String id); //拼接要合并项目的项目id和项目名称 Map<String, Object> hebingCaiYangInFo(List<String> ids); //判断所选项目是否可以合并 int panduanshifoukeyihebing(List<String> ids); int panduanshifoukeyihebing(@Param("ids") List<String> ids); //修改合并的项目添加合并编号 boolean updateHeBingXm(List<String> ids, String parentId); //判断是否存在合并项目 int pdsfczhbxm(List<String> ids); //合并项目接口中获取合并的项目 TjSampling getTjSamplingByHb(List<String> ids); //获取所选项目中未合并的单项 List<TjSampling> getTjSamplingListByHb(List<String> ids); //删除所选的合并项目 boolean deletedTjSamplingListByHb(@Param("ids") List<String> ids); //修改原来合并过得项目 boolean updateHeBingXm(@Param("ids") List<String> ids); } ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjSamplingServiceImpl.java
@@ -100,4 +100,34 @@ public int panduanshifoukeyihebing(List<String> ids) { return tjSamplingMapper.panduanshifoukeyihebing(ids); } @Override public boolean updateHeBingXm(List<String> ids, String parentId) { return tjSamplingMapper.updateHeBingXm(ids,parentId); } @Override public int pdsfczhbxm(List<String> ids) { return tjSamplingMapper.pdsfczhbxm(ids); } @Override public TjSampling getTjSamplingByHb(List<String> ids) { return tjSamplingMapper.getTjSamplingByHb(ids); } @Override public List<TjSampling> getTjSamplingListByHb(List<String> ids) { return tjSamplingMapper.getTjSamplingListByHb(ids); } @Override public boolean deletedTjSamplingListByHb(List<String> ids) { return tjSamplingMapper.deletedTjSamplingListByHb(ids); } @Override public boolean updateHeBingXm(List<String> ids) { return tjSamplingMapper.updateHeBingXms(ids); } } ltkj-hosp/src/main/resources/mapper/hosp/TjSamplingMapper.xml
@@ -262,4 +262,22 @@ #{id} </foreach> </delete> <update id="updateHeBingXm" parameterType="java.util.Map"> UPDATE tj_sampling a SET a.parent_id=#{parentId} WHERE a.id in <foreach item="id" collection="ids" open="(" separator="," close=")"> #{id} </foreach> </update> <update id="updateHeBingXms" parameterType="java.util.Map"> UPDATE tj_sampling a SET a.parent_id=null WHERE a.parent_id in <foreach item="id" collection="ids" open="(" separator="," close=")"> #{id} </foreach> </update> </mapper>