ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java
@@ -68,8 +68,6 @@ @Autowired private LisApiMethod lisApiMethod; @Autowired private IdUtils idUtils; @Autowired private ISysConfigService configService; /** @@ -277,59 +275,8 @@ @PostMapping("/mergeCaiYang") @ApiOperation(value = "采样登记合并项目接口") @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("最多允许选择一个合并过的项目!"); // 查询出里面不可合并的化验项目 String string = tjSamplingService.getBuKeHebingProName(ids); if(null !=string){ return AjaxResult.error(string+"这几个项目不可合并!"); } if (pdsfczhbxm == 0) { TjSampling tjSampling = tjSamplingService.getById(ids.get(0)); Map<String, Object> map = tjSamplingService.hebingCaiYangInFo(ids); TjSampling sampling = new TjSampling(); String proId = map.get("proId").toString(); String proName = map.get("proName").toString(); BeanUtil.copyProperties(tjSampling, sampling, new String[]{"id"}); sampling.setProId(proId); sampling.setProName(proName); sampling.setIsMerge(1); sampling.setJyxh(idUtils.generateLisID()); if (tjSamplingService.save(sampling)) { 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("请选择你要合并的项目!!!"); return tjSamplingService.mergeCaiYangTran(ids); } @@ -412,6 +359,21 @@ @ApiOperation(value = "确认采样接口") @Transactional public AjaxResult confirmSampling(@RequestBody List<String> ids) { String config = configService.selectConfigByKey("sfkqdyhis"); String mergeRequest = configService.selectConfigByKey("use_lis_pacs_is_auto_merge_request"); return confirm(ids,config,mergeRequest); } /** * 确认采样接口 */ public Boolean confirmSamplingApi(List<String> ids,String sfkqdyhis,String mergeRequest) { AjaxResult confirm = confirm(ids, sfkqdyhis, mergeRequest); log.info("确认采样返回 ->{}",confirm); return confirm.get("code").toString().equals("200"); } private AjaxResult confirm(List<String> ids,String config,String mergeRequest) { if (null == ids || ids.isEmpty()) { return AjaxResult.error("请选择要确认项"); } @@ -442,12 +404,11 @@ // } // } TjOrder tjOrder = orderService.getOrderByTjNum(sampling.getTjNum()); if(null==tjOrder)return AjaxResult.error("体检记录不存在"); if(null==tjOrder) return AjaxResult.error("体检记录不存在"); TjCustomer tjCustomer = customerService.getById(tjOrder.getUserId()); boolean updChild; String config = configService.selectConfigByKey("sfkqdyhis"); Boolean save; if (null != config && config.equals("Y")) { if (null != config && config.equals("Y") && !mergeRequest.equals("Y")) { save = lisApiMethod.save(sampling, tjOrder, tjCustomer); }else { save = true; ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjSamplingMapper.java
@@ -162,4 +162,16 @@ +") aa " + "WHERE\n" + " aa.jyfldm NOT IN ( SELECT c.flbm FROM lis_jyflhb c);", "</script>"}) String getBuKeHebingProName(@Param("ids")List<String> ids); @Select("SELECT COUNT( 1 ) FROM(\n" + "\tSELECT\n" + "\t\ta.jyxmdm,\n" + "\t\tb.jyfldm \n" + "\tFROM\n" + "\t\t`tj_sampling` a\n" + "\t\tLEFT JOIN ltkj_jyxmzd b ON a.jyxmdm = b.jyxmdm \n" + "\tWHERE\n" + "\t\ta.id = #{id} \n" + "\t) aa WHERE aa.jyfldm NOT IN ( SELECT c.flbm FROM lis_jyflhb c )") int isMergeItem(@Param("id") String id); } ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjSamplingService.java
@@ -4,6 +4,7 @@ import java.util.Map; import com.baomidou.mybatisplus.extension.service.IService; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.hosp.domain.TjSampling; import org.apache.ibatis.annotations.Param; @@ -87,4 +88,15 @@ boolean updateHeBingXm(@Param("ids") List<String> ids); String getBuKeHebingProName(List<String> ids); AjaxResult mergeCaiYangTran(List<String> ids); String mergeCaiYangApi(List<String> ids); /** * 判断项目是否能进行合并 * @param id 采样表id * @return */ int isMergeItem(String id); } ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjSamplingServiceImpl.java
@@ -3,14 +3,26 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.utils.DateUtils; import com.ltkj.common.utils.IdUtils; import com.ltkj.hosp.domain.TjCustomer; import com.ltkj.hosp.domain.TjOrder; import com.ltkj.hosp.service.ITjCustomerService; import com.ltkj.hosp.service.ITjOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ltkj.hosp.mapper.TjSamplingMapper; import com.ltkj.hosp.domain.TjSampling; import com.ltkj.hosp.service.ITjSamplingService; import org.springframework.transaction.annotation.Transactional; /** * 体检采样管理Service业务层处理 @@ -18,10 +30,17 @@ * @author ltkj_赵佳豪&李格 * @date 2023-04-11 */ @Slf4j @Service public class TjSamplingServiceImpl extends ServiceImpl<TjSamplingMapper,TjSampling> implements ITjSamplingService { @Autowired private TjSamplingMapper tjSamplingMapper; @Autowired private IdUtils idUtils; @Autowired private ITjOrderService orderService; @Autowired private ITjCustomerService customerService; /** * 查询体检采样管理 @@ -135,4 +154,76 @@ public String getBuKeHebingProName(List<String> ids) { return tjSamplingMapper.getBuKeHebingProName(ids); } @Transactional @Override public AjaxResult mergeCaiYangTran(List<String> ids) { return mergeCaiYang(ids); } @Override public String mergeCaiYangApi(List<String> ids) { AjaxResult ajaxResult = mergeCaiYang(ids); log.info("合并采样返回 ->{}",ajaxResult); return ajaxResult.get("data").toString(); } private AjaxResult mergeCaiYang(List<String> ids) { if (null != ids && !ids.isEmpty()) { if(ids.size()==1) return AjaxResult.error("请选择至少两条项目进行合并!"); int i = panduanshifoukeyihebing(ids); if (i > 1) { return AjaxResult.error("标本类型不一致,不可合并"); } int pdsfczhbxm = pdsfczhbxm(ids); if (pdsfczhbxm == ids.size()) return AjaxResult.error("多个合并项目不可再继续合并!"); if (pdsfczhbxm > 1) return AjaxResult.error("最多允许选择一个合并过的项目!"); // 查询出里面不可合并的化验项目 String string = getBuKeHebingProName(ids); if(null !=string){ return AjaxResult.error(string + "这几个项目不可合并!"); } if (pdsfczhbxm == 0) { TjSampling tjSampling = getById(ids.get(0)); Map<String, Object> map = hebingCaiYangInFo(ids); TjSampling sampling = new TjSampling(); String proId = map.get("proId").toString(); String proName = map.get("proName").toString(); BeanUtil.copyProperties(tjSampling, sampling, new String[]{"id"}); sampling.setProId(proId); sampling.setProName(proName); sampling.setIsMerge(1); sampling.setJyxh(idUtils.generateLisID()); if (save(sampling)) { if (updateHeBingXm(ids, sampling.getId())) { return AjaxResult.success("合并项目成功!", sampling.getId()); } } return AjaxResult.error("操作失败!"); } else { TjSampling tjSampling = getTjSamplingByHb(ids); List<TjSampling> samplingList = getTjSamplingListByHb(ids); if (null != tjSampling && null != samplingList && !samplingList.isEmpty()) { List<String> stringList = samplingList.stream().map(TjSampling::getId).collect(Collectors.toList()); Map<String, Object> map = hebingCaiYangInFo(stringList); String proId = map.get("proId").toString(); String proName = map.get("proName").toString(); tjSampling.setProId(proId); tjSampling.setProName(proName); if (updateById(tjSampling)) { if (updateHeBingXm(stringList, tjSampling.getParentId())) { return AjaxResult.success("合并项目成功!", tjSampling.getId()); } } } return AjaxResult.error("操作失败!"); } } return AjaxResult.error("请选择你要合并的项目!!!"); } @Override public int isMergeItem(String id) { return baseMapper.isMergeItem(id); } }