diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabReqdetail.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabReqdetail.java index 42093c6..432376c 100644 --- a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabReqdetail.java +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabReqdetail.java @@ -28,5 +28,8 @@ public class LabReqdetail extends BaseEntity { private Date dtbk1; private Date dtbk2; private String bz3; + private String bz4; + private String bz5; + private String bz6; } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqdetailMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqdetailMapper.java index d4eed86..ca0c6a3 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqdetailMapper.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqdetailMapper.java @@ -7,4 +7,5 @@ import java.util.List; public interface LabReqdetailMapper { List getLabReqdetailList(String sqh); int getCountByKey(String sqh); + void insert(LabReqdetail labReqdetail); } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java index d9e031c..01bb646 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java @@ -676,4 +676,9 @@ public class CommonUtil { public SysUser getSysUserOne(String user_name){ return sysUserCommMapper.getSysUserOne(user_name); } + + @Transactional(rollbackFor = Exception.class) + public void insertLabReqdetail(LabReqdetail labReqdetail){ + labReqdetailMapper.insert(labReqdetail); + } } diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabReqdetailMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabReqdetailMapper.xml index 92635f3..c4af10c 100644 --- a/lis-interfaceCommon/src/main/resources/mapper/LabReqdetailMapper.xml +++ b/lis-interfaceCommon/src/main/resources/mapper/LabReqdetailMapper.xml @@ -10,4 +10,25 @@ select count(1) from lab_reqdetail where sqh = #{sqh} + + insert into lab_reqdetail (sqh, xh, sqxmdh, sqxmmc, sl, dj + , bz1 + , bz2 + , bz3 + , bz4 + , bz5 + , bz6 + ) + values ( + #{sqh}, #{xh}, #{sqxmdh}, #{sqxmmc}, #{sl}, #{dj} + , #{bz1} + , #{bz2} + , #{bz3} + , #{bz4} + , #{bz5} + , #{bz6} + + ) + + diff --git a/mzcx/src/main/java/com/czlis/mzcx/controller/ReqInputLisWorkController.java b/mzcx/src/main/java/com/czlis/mzcx/controller/ReqInputLisWorkController.java index 3bc1a85..ed7cc31 100644 --- a/mzcx/src/main/java/com/czlis/mzcx/controller/ReqInputLisWorkController.java +++ b/mzcx/src/main/java/com/czlis/mzcx/controller/ReqInputLisWorkController.java @@ -1,9 +1,12 @@ package com.czlis.mzcx.controller; +import com.czlis.common.core.controller.BaseController; import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.ComPat; import com.czlis.common.core.domain.entity.lis.LabReqmain; import com.czlis.mzcx.pojo.dto.ReqInputLisWorkDTO; +import com.czlis.mzcx.pojo.dto.ReqInputLisWorkReqInfoDTO; +import com.czlis.mzcx.pojo.vo.ReqInputLisWorkVO; import com.czlis.mzcx.service.ReqInputLisWorkService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -15,7 +18,7 @@ import java.util.List; @Api(tags = "科内开单") @RestController @RequestMapping("/reqInput") -public class ReqInputLisWorkController { +public class ReqInputLisWorkController extends BaseController { @Autowired private ReqInputLisWorkService reqInputLisWorkService; @@ -34,8 +37,11 @@ public class ReqInputLisWorkController { @ApiOperation("保存病人信息") @PostMapping("/saveReqInfo") - public Result saveReqInfo(@RequestBody LabReqmain labReqmain){ - return reqInputLisWorkService.saveReqInfo(labReqmain); + public Result saveReqInfo(@RequestBody ReqInputLisWorkReqInfoDTO reqInputLisWorkReqInfoDTO){ + LabReqmain labReqmain = reqInputLisWorkReqInfoDTO.getLabReqmain(); + List reqInputLisWorkVOList = reqInputLisWorkReqInfoDTO.getReqInputLisWorkVOList(); + labReqmain.setZxys(getUsername()); + return reqInputLisWorkService.saveReqInfo(labReqmain,reqInputLisWorkVOList); } diff --git a/mzcx/src/main/java/com/czlis/mzcx/pojo/dto/ReqInputLisWorkReqInfoDTO.java b/mzcx/src/main/java/com/czlis/mzcx/pojo/dto/ReqInputLisWorkReqInfoDTO.java new file mode 100644 index 0000000..ec28536 --- /dev/null +++ b/mzcx/src/main/java/com/czlis/mzcx/pojo/dto/ReqInputLisWorkReqInfoDTO.java @@ -0,0 +1,17 @@ +package com.czlis.mzcx.pojo.dto; + +import com.czlis.common.core.domain.entity.lis.LabReqmain; +import com.czlis.mzcx.pojo.vo.ReqInputLisWorkVO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ReqInputLisWorkReqInfoDTO { + private LabReqmain labReqmain; + private List reqInputLisWorkVOList; +} diff --git a/mzcx/src/main/java/com/czlis/mzcx/service/ReqInputLisWorkService.java b/mzcx/src/main/java/com/czlis/mzcx/service/ReqInputLisWorkService.java index afe410c..c261153 100644 --- a/mzcx/src/main/java/com/czlis/mzcx/service/ReqInputLisWorkService.java +++ b/mzcx/src/main/java/com/czlis/mzcx/service/ReqInputLisWorkService.java @@ -4,13 +4,16 @@ import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.ComPat; import com.czlis.common.core.domain.entity.lis.LabReqmain; import com.czlis.mzcx.pojo.dto.ReqInputLisWorkDTO; +import com.czlis.mzcx.pojo.vo.ReqInputLisWorkVO; + +import java.util.List; public interface ReqInputLisWorkService { Result getPatientInfo(ComPat comPat); Result queryPatList(ReqInputLisWorkDTO reqInputLisWorkDTO); - Result saveReqInfo(LabReqmain labReqmain); + Result saveReqInfo(LabReqmain labReqmain, List reqInputLisWorkVOList); Result queryXmInfoList(); } diff --git a/mzcx/src/main/java/com/czlis/mzcx/service/impl/ReqInputLisWorkServiceImpl.java b/mzcx/src/main/java/com/czlis/mzcx/service/impl/ReqInputLisWorkServiceImpl.java index 612e0ed..ec01e5f 100644 --- a/mzcx/src/main/java/com/czlis/mzcx/service/impl/ReqInputLisWorkServiceImpl.java +++ b/mzcx/src/main/java/com/czlis/mzcx/service/impl/ReqInputLisWorkServiceImpl.java @@ -3,11 +3,13 @@ package com.czlis.mzcx.service.impl; import cn.hutool.core.date.DateUtil; import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.ComPat; +import com.czlis.common.core.domain.entity.lis.LabReqdetail; import com.czlis.common.core.domain.entity.lis.LabReqmain; import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants; import com.czlis.interfaceCommon.pojo.inter.DayMessage; import com.czlis.interfaceCommon.utils.CommonUtil; import com.czlis.interfaceCommon.utils.LisInterfaceUtil; +import com.czlis.interfaceCommon.utils.LisUtil; import com.czlis.mzcx.mapper.ReqInputLisWorkMapper; import com.czlis.mzcx.pojo.dto.ReqInputLisWorkDTO; import com.czlis.mzcx.pojo.vo.ReqInputLisWorkVO; @@ -15,10 +17,10 @@ import com.czlis.mzcx.service.ReqInputLisWorkService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.util.*; @Service @Slf4j @@ -60,10 +62,48 @@ public class ReqInputLisWorkServiceImpl implements ReqInputLisWorkService { } @Override - public Result saveReqInfo(LabReqmain labReqmain) { + public Result saveReqInfo(LabReqmain labReqmain,List reqInputLisWorkVOList) { String brxm = labReqmain.getBrxm(); if(brxm == null || "".equals(brxm)) return new Result("-1","病人姓名不能为空!"); - return null; + List> reqInfoList = new ArrayList<>(); + for (ReqInputLisWorkVO reqInputLisWorkVO : reqInputLisWorkVOList) { + String sfxmmc = reqInputLisWorkVO.getSfxmmc(); + String sflbdh = reqInputLisWorkVO.getSflbdh(); + if(sflbdh == null || "".equals(sflbdh)) return new Result("-1",sfxmmc+":没有分类,请先进行分类!"); + Map reqInfoMap = new HashMap<>(); + reqInfoMap.put("lab_reqmain_yblx",labReqmain.getYblx()); + reqInfoMap.put("lab_reqmain_brxm",labReqmain.getBrxm()); + reqInfoMap.put("lab_reqmain_brdh",labReqmain.getBrdh()); + reqInfoMap.put("lab_reqmain_brxb",labReqmain.getBrxb()); + reqInfoMap.put("lab_reqmain_jzbz","0"); + reqInfoMap.put("lab_reqmain_brsr",DateUtil.format(labReqmain.getBrsr(),"yyyy-MM-dd HH:mm:ss")); + reqInfoMap.put("lab_reqmain_ksdh",labReqmain.getKsdh()); + reqInfoMap.put("lab_reqmain_sqys",labReqmain.getSqys()); + reqInfoMap.put("lab_reqmain_sqsj",DateUtil.format(labReqmain.getSqsj(),"yyyy-MM-dd HH:mm:ss")); + reqInfoMap.put("lab_reqmain_ch",labReqmain.getCh()); + String value = commonUtil.getComOptValue("HISOPT", "sp_knkdbrly"); + if(value == null || "".equals(value)) value = "1"; + reqInfoMap.put("lab_reqmain_brly",value); + reqInfoMap.put("lab_reqmain_zt","1"); + reqInfoMap.put("lab_reqmain_yljg","1"); + reqInfoMap.put("lab_reqmain_zxys",labReqmain.getZxys()); + reqInfoMap.put("lab_reqmain_jjzt","0"); + + + reqInfoMap.put("sqxmdh",reqInputLisWorkVO.getSfxmdh()); + reqInfoMap.put("sqxmmc",reqInputLisWorkVO.getSfxmmc()); + reqInfoMap.put("sl","1"); + reqInfoMap.put("dj",reqInputLisWorkVO.getDj()); + reqInfoMap.put("zt","1"); + reqInfoMap.put("jjzt","1"); + + reqInfoMap.put("sflbdh",reqInputLisWorkVO.getSflbdh()); + reqInfoList.add(reqInfoMap); + + } + //给默认值 + createReqInfo(reqInfoList); + return new Result("0","保存数据成功!"); } @Override @@ -88,4 +128,119 @@ public class ReqInputLisWorkServiceImpl implements ReqInputLisWorkService { String format = String.format("%04d", mzseq); return "6" + head + format.substring(format.length()-4); } + + + /** + * 生成申请单信息 + */ + public void createReqInfo(List> reqInfoList){ + List labReqmainList = new ArrayList<>(); + List labReqdetailList = new ArrayList<>(); + reqInfoList.sort(new Comparator>() { + @Override + public int compare(Map o1, Map o2) { + String bz11 = LisUtil.isBank(o1.get("sflbdh").toString().trim()); + String bz12 = LisUtil.isBank(o2.get("sflbdh").toString().trim()); + return bz11.compareTo(bz12); + } + }); + + String sflbdh1 = "",sqh = ""; + String jymd = ""; + int xh = 0; + int k = -1; + LabReqmain labReqmain = null; + for (Map stringObjectMap : reqInfoList) { + String sflbdh = stringObjectMap.get("sflbdh").toString(); + LabReqdetail labReqdetail = new LabReqdetail(); + if(sflbdh.equals(sflbdh1)){ + xh++; + jymd = jymd + "," + stringObjectMap.get("sqxmmc").toString(); + if(jymd.length() >= 120){ + jymd = jymd.substring(0,120); + } + labReqmain.setJymd(jymd); + labReqmainList.set(k,labReqmain); + + //写lab_reqdetail表 + labReqdetail.setSqh(sqh); + labReqdetail.setXh(xh); + labReqdetail.setSqxmdh(stringObjectMap.get("sqxmdh").toString()); + labReqdetail.setSqxmmc(stringObjectMap.get("sqxmmc").toString()); + labReqdetail.setSl(new BigDecimal(stringObjectMap.get("sl").toString()).intValue()); + labReqdetail.setDj(new BigDecimal(stringObjectMap.get("dj").toString())); + labReqdetail.setZt(stringObjectMap.get("zt").toString()); + labReqdetail.setJjzt(stringObjectMap.get("jjzt").toString()); + labReqdetailList.add(labReqdetail); + continue; + }else{ + sqh = createSQH(); + xh = 1; + sflbdh1 = sflbdh; + labReqdetail.setSqh(sqh); + labReqdetail.setXh(xh); + } + + labReqdetail.setSqh(sqh); + labReqdetail.setXh(xh); + labReqdetail.setSqxmdh(LisUtil.isBank(stringObjectMap.get("sqxmdh"))); + labReqdetail.setSqxmmc(stringObjectMap.get("sqxmmc").toString()); + labReqdetail.setSl(new BigDecimal(stringObjectMap.get("sl").toString()).intValue()); + labReqdetail.setDj(new BigDecimal(stringObjectMap.get("dj").toString())); + labReqdetail.setZt(stringObjectMap.get("zt").toString()); + labReqdetail.setJjzt(stringObjectMap.get("jjzt").toString()); + labReqdetailList.add(labReqdetail); + + jymd = stringObjectMap.get("sqxmmc").toString(); + + //写lab_reqmain 表 + labReqmain = new LabReqmain(); + k++; + labReqmain.setJzbz(stringObjectMap.get("lab_reqmain_jzbz").toString()); + labReqmain.setYblx(stringObjectMap.get("lab_reqmain_yblx").toString()); + labReqmain.setKsdh( stringObjectMap.get("lab_reqmain_ksdh").toString()); + labReqmain.setSqys( LisUtil.isBank(stringObjectMap.get("lab_reqmain_sqys"))); + labReqmain.setBrdh( (String)stringObjectMap.get("lab_reqmain_brdh")); + labReqmain.setBrxm( (String)stringObjectMap.get("lab_reqmain_brxm")); + labReqmain.setBrxb( (String)stringObjectMap.get("lab_reqmain_brxb")); + String brsr = stringObjectMap.get("lab_reqmain_brsr").toString(); + labReqmain.setBrsr(DateUtil.parse(brsr,"yyyy-MM-dd HH:mm:ss")); + labReqmain.setSqsj(DateUtil.parse(stringObjectMap.get("lab_reqmain_sqsj").toString(),"yyyy-MM-dd HH:mm:ss")); + labReqmain.setBgddh((String) stringObjectMap.get("sflbdh")); + labReqmain.setYljg(stringObjectMap.get("lab_reqmain_yljg").toString()); + labReqmain.setZxys(stringObjectMap.get("lab_reqmain_zxys").toString()); + labReqmain.setZxsj(commonUtil.getCurrentTime()); + labReqmain.setCh((String) stringObjectMap.get("lab_reqmain_ch")); + labReqmain.setSqh(sqh); +// String brzd = (String)stringObjectMap.get("lab_reqmain_zd"); +// if(brzd == null) brzd = ""; +// if(brzd.length() >= 50){ +// brzd = brzd.substring(0,48); +// } + //labReqmain.setZd(brzd); + if(jymd.length() >= 120){ + jymd = jymd.substring(0,120); + } + labReqmain.setJymd(jymd); + labReqmain.setZt(stringObjectMap.get("lab_reqmain_zt").toString()); + labReqmain.setJjzt(stringObjectMap.get("lab_reqmain_jjzt").toString()); + labReqmain.setBrly(LisUtil.isBank(stringObjectMap.get("lab_reqmain_brly"))); + labReqmainList.add(k,labReqmain); + } + + //保存数据 + saveReqInfo(labReqmainList,labReqdetailList); + + } + + + public void saveReqInfo(List labReqmainList,List labReqdetailList){ + for (LabReqmain labReqmain : labReqmainList) { + commonUtil.insertLabReqmain(labReqmain); + } + for (LabReqdetail labReqdetail : labReqdetailList) { + commonUtil.insertLabReqdetail(labReqdetail); + } + + } } diff --git a/mzcx/src/main/resources/mapper/ReqInputLisWorkMapper.xml b/mzcx/src/main/resources/mapper/ReqInputLisWorkMapper.xml index 02224df..dff6528 100644 --- a/mzcx/src/main/resources/mapper/ReqInputLisWorkMapper.xml +++ b/mzcx/src/main/resources/mapper/ReqInputLisWorkMapper.xml @@ -36,20 +36,21 @@