diff --git a/src/main/java/com/emr/controller/faultController.java b/src/main/java/com/emr/controller/faultController.java index 16a41be7..d7ee5734 100644 --- a/src/main/java/com/emr/controller/faultController.java +++ b/src/main/java/com/emr/controller/faultController.java @@ -53,6 +53,12 @@ public class faultController { return "faultDir/faultList"; } + + @RequestMapping(value = "/faultScores") + public String faultScores(Model model) { + return "faultScoreDir/faultScoreList"; + } + /*@ResponseBody @RequestMapping(value = "/faultList") public OffsetLimitPage faultList(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { @@ -181,6 +187,13 @@ public class faultController { ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames); utils.exportExcelToFilePath(response, utils.listConvert(list)); } + + @ResponseBody + @RequestMapping(value = "/exportScoreExcel") + public void exportScoreExcel(HttpServletResponse response, Emr_Fault_Vo emrFaultVo) throws Exception { + + } + public boolean compare(String time1,String time2) throws ParseException { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date a=sdf.parse(time1); @@ -263,7 +276,6 @@ public class faultController { //已存在删了,重新添加 emrFaultDetailService.deleteById(emrFaultVo.getId()); - } //添加 if (!(emrFaultVo.getBackFlag()).equals(null) && !emrFaultVo.getBackFlag().equals("")) { @@ -297,6 +309,7 @@ public class faultController { BigDecimal price = new BigDecimal(priceArr[i]); emrFaultDetail.setPrice(price); } + emrFaultDetail.setPriceTwo(emrFaultType.getPriceTwo()); //医生或护士 bol = emrFaultDetailService.insertSel(emrFaultDetail); if (bol == 1) { @@ -318,6 +331,7 @@ public class faultController { BigDecimal price = new BigDecimal(emrFaultVo.getBackContent()); emrFaultDetail.setPrice(price); } + emrFaultDetail.setPriceTwo(emrFaultType.getPriceTwo()); //医生或护士 int bol = emrFaultDetailService.insertSel(emrFaultDetail); if (bol == 1) { @@ -357,6 +371,7 @@ public class faultController { BigDecimal price = new BigDecimal(priceArr[i]); emrFaultDetail.setPrice(price); } + emrFaultDetail.setPriceTwo(emrFaultType.getPriceTwo()); //医生或护士 bol = emrFaultDetailService.insertSel(emrFaultDetail); if (bol == 1) { @@ -378,6 +393,7 @@ public class faultController { BigDecimal price = new BigDecimal(emrFaultVo.getBackContent()); emrFaultDetail.setPrice(price); } + emrFaultDetail.setPriceTwo(emrFaultType.getPriceTwo()); //医生或护士 int bol = emrFaultDetailService.insertSel(emrFaultDetail); if (bol == 1) { @@ -446,7 +462,6 @@ public class faultController { entity.setDealFlag("1"); entity.setDealPerson(username); entity.setDealTime(nowTime); - } else if(entity.getDealFlag().equals("1")) { entity.setDealFlag("0"); entity.setDealPerson(""); @@ -524,7 +539,14 @@ public class faultController { public OffsetLimitPage masterTotalList(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { OffsetLimitPage result = emrFaultDetailService.masterTotalList(emrFaultVo, offset, limit); return result; + } + + @ResponseBody + @RequestMapping(value = "/masterTotalScoreList") + public OffsetLimitPage masterTotalScoreList(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { + OffsetLimitPage result = emrFaultDetailService.masterTotalScoreList(emrFaultVo, offset, limit); + return result; } } diff --git a/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java b/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java index 997b2806..876b3e0e 100644 --- a/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java +++ b/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java @@ -15,6 +15,12 @@ public interface Emr_Fault_DetailMapper { */ int deleteById(Integer id); + /** + * 根据id删除记录 + * @param emrFaultVo + * @return + */ + int deleteByIdTwo(Emr_Fault_Vo emrFaultVo); /** * 根据back_flag is null 和archiveDetailId删除记录 * @param record @@ -43,6 +49,13 @@ public interface Emr_Fault_DetailMapper { */ int insertSel(Emr_Fault_Detail record); + /** + * + * @param record + * @return + */ + int insertSelEnd(Emr_Fault_Detail record); + /** * 根据id修改可选字段的记录 * @param record @@ -120,6 +133,23 @@ public interface Emr_Fault_DetailMapper { */ List masterTotalList(Emr_Fault_Vo emrFaultVo); + + /** + * 根据条件查询病案信息、退回总次数、总费用和总评分 + * @param emrFaultVo + * @return + */ + List masterTotalListTwo(Emr_Fault_Vo emrFaultVo); + + + + /** + * 根据条件查询病案信息、退回总次数、总费用和总评分 + * @param masterId + * @return + */ + List getPeiceByMasterID(String masterId); + /** * 根据条件查询病案缺陷的退回及评分列表 * @param emrFaultVo diff --git a/src/main/java/com/emr/entity/Emr_Fault_Detail.java b/src/main/java/com/emr/entity/Emr_Fault_Detail.java index 949b2913..6222ee07 100644 --- a/src/main/java/com/emr/entity/Emr_Fault_Detail.java +++ b/src/main/java/com/emr/entity/Emr_Fault_Detail.java @@ -5,6 +5,16 @@ import java.math.BigDecimal; public class Emr_Fault_Detail { private Integer id; + private Integer idPage; + + public Integer getIdPage() { + return idPage; + } + + public void setIdPage(Integer idPage) { + this.idPage = idPage; + } + private String archiveDetailId; private String assortId; @@ -25,6 +35,16 @@ public class Emr_Fault_Detail { private BigDecimal price; + public String getPriceTwo() { + return priceTwo; + } + + public void setPriceTwo(String priceTwo) { + this.priceTwo = priceTwo; + } + + private String priceTwo; + private BigDecimal score; private String backContent; diff --git a/src/main/java/com/emr/entity/Emr_Fault_Type.java b/src/main/java/com/emr/entity/Emr_Fault_Type.java index bb756ffc..74e949e4 100644 --- a/src/main/java/com/emr/entity/Emr_Fault_Type.java +++ b/src/main/java/com/emr/entity/Emr_Fault_Type.java @@ -17,6 +17,16 @@ public class Emr_Fault_Type { private BigDecimal price; + public String getPriceTwo() { + return priceTwo; + } + + public void setPriceTwo(String priceTwo) { + this.priceTwo = priceTwo; + } + + private String priceTwo; + private String remark; private String creater; diff --git a/src/main/java/com/emr/entity/Emr_Fault_Vo.java b/src/main/java/com/emr/entity/Emr_Fault_Vo.java index c4691025..c42f46e6 100644 --- a/src/main/java/com/emr/entity/Emr_Fault_Vo.java +++ b/src/main/java/com/emr/entity/Emr_Fault_Vo.java @@ -12,6 +12,46 @@ import java.math.BigDecimal; public class Emr_Fault_Vo { private Integer id; + public Integer getBnum() { + return bnum; + } + + public void setBnum(Integer bnum) { + this.bnum = bnum; + } + + public Integer getCnum() { + return cnum; + } + + public void setCnum(Integer cnum) { + this.cnum = cnum; + } + + private Integer bnum; + + private Integer cnum; + + public String getMasterId() { + return masterId; + } + + public void setMasterId(String masterId) { + this.masterId = masterId; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + private String grade; + + private String masterId; + private String archiveDetailId; private String assortId; @@ -22,6 +62,36 @@ public class Emr_Fault_Vo { private BigDecimal price; + private BigDecimal priceSum; + + public String getSysflag() { + return sysflag; + } + + public void setSysflag(String sysflag) { + this.sysflag = sysflag; + } + + private String sysflag; + + public BigDecimal getPriceSum() { + return priceSum; + } + + public void setPriceSum(BigDecimal priceSum) { + this.priceSum = priceSum; + } + + private String priceTwo; + + public String getPriceTwo() { + return priceTwo; + } + + public void setPriceTwo(String priceTwo) { + this.priceTwo = priceTwo; + } + private BigDecimal score; private String backContent; diff --git a/src/main/java/com/emr/service/Emr_Fault_DetailService.java b/src/main/java/com/emr/service/Emr_Fault_DetailService.java index 1fda1185..9d028148 100644 --- a/src/main/java/com/emr/service/Emr_Fault_DetailService.java +++ b/src/main/java/com/emr/service/Emr_Fault_DetailService.java @@ -51,6 +51,15 @@ public interface Emr_Fault_DetailService { */ int insertSel(Emr_Fault_Detail record); + + + /** + * 插入缺陷退回审核内容 + * @param record + * @return + */ + int insertSelEnd(Emr_Fault_Detail record); + /** * 根据字段查询缺陷记录列表(1医生,2护士,5,6) * @param emrFaultDetail @@ -75,6 +84,13 @@ public interface Emr_Fault_DetailService { */ int deleteById(Integer id); + /** + * 根据id删除记录 + * @param emrFaultVo + * @return + */ + int deleteByIdTwo(Emr_Fault_Vo emrFaultVo); + /** * 根据id删除所有召回记录 * @param record @@ -126,6 +142,19 @@ public interface Emr_Fault_DetailService { */ List masterTotalList(Emr_Fault_Vo emrFaultVo); + + + + /** + * 根据条件查询病案信息、退回总次数、总费用和总评分列表 + * @param emrFaultVo + * @return + */ + List masterTotalSocerList(Emr_Fault_Vo emrFaultVo); + + + + /** * 根据条件查询病案信息、退回总次数、总费用和总评分列表分页 * @param emrFaultVo @@ -133,6 +162,13 @@ public interface Emr_Fault_DetailService { */ OffsetLimitPage masterTotalList(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit); + + /** + * 根据条件查询病案信息、退回总次数、总费用和总评分列表分页 + * @param emrFaultVo + * @return + */ + OffsetLimitPage masterTotalScoreList(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit); /** * 根据条件查询病案缺陷的退回及评分列表 * @param emrFaultVo diff --git a/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java b/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java index b96e900b..6f707866 100644 --- a/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java @@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; @@ -128,6 +129,12 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { return emrFaultDetailMapper.insertSel(record); } + + @Override + public int insertSelEnd(Emr_Fault_Detail record) { + return emrFaultDetailMapper.insertSelEnd(record); + } + @Override public List selectByColumn(Emr_Fault_Detail emrFaultDetail) { List list=emrFaultDetailMapper.selectByColumn(emrFaultDetail); @@ -196,6 +203,11 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { return emrFaultDetailMapper.deleteById(id); } + @Override + public int deleteByIdTwo(Emr_Fault_Vo emrFaultVo) { + return emrFaultDetailMapper.deleteByIdTwo(emrFaultVo); + } + @Override public int delByArchiveId(Emr_Fault_Detail record) { return emrFaultDetailMapper.delByArchiveId(record); @@ -338,7 +350,45 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { }}); for (Emr_Fault_Vo emr_fault_vo : list) { - // emr_fault_vo.setBackFee(priceVal); + // emr_fault_vo.setBackFee(priceVal); + //主管医生 + JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge()); + if (userInfo == null) { + emr_fault_vo.setDoctorInCharge(emr_fault_vo.getDoctorInCharge()); + } else { + emr_fault_vo.setDoctorInCharge(userInfo.getString("name")); + } + //退回人 + userInfo = mappedMovies.get(emr_fault_vo.getCreater()); + if (userInfo == null) { + emr_fault_vo.setCreater(emr_fault_vo.getCreater()); + } else { + emr_fault_vo.setCreater(userInfo.getString("name")); + } + } + + } + } + return list; + } + + + + @Override + public List masterTotalSocerList(Emr_Fault_Vo emrFaultVo) { + //获取病案信息 + List list= emrFaultDetailMapper.masterTotalListTwo(emrFaultVo); + if(list!=null && list.size()>0) { + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Emr_Fault_Vo emr_fault_vo : list) { //主管医生 JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge()); if (userInfo == null) { @@ -353,6 +403,28 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { } else { emr_fault_vo.setCreater(userInfo.getString("name")); } + List peiceByMasterID = emrFaultDetailMapper.getPeiceByMasterID(emr_fault_vo.getMasterId()); + if (peiceByMasterID!=null && !peiceByMasterID.isEmpty()){ + for (int i=0;peiceByMasterID.size()>i;i++){ + if (peiceByMasterID.get(0).getCnum()>0){ + emr_fault_vo.setGrade("不合格"); + } + if (peiceByMasterID.get(0).getBnum()>1){ + emr_fault_vo.setGrade("不合格"); + } + BigDecimal priceSum = peiceByMasterID.get(0).getPriceSum(); + BigDecimal num1 = new BigDecimal("100"); + BigDecimal result2 = num1.subtract(priceSum); + BigDecimal b = new BigDecimal(90); + if (result2.compareTo(b) == -1){ + emr_fault_vo.setGrade("不合格"); + } + if (peiceByMasterID.get(0).getCnum()==0 &&peiceByMasterID.get(0).getBnum()==0 && result2.compareTo(b) == 1){ + emr_fault_vo.setGrade("优秀病历"); + } + emr_fault_vo.setScore(result2); + } + } } } @@ -367,6 +439,15 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { return new OffsetLimitPage((Page) list); } + + + @Override + public OffsetLimitPage masterTotalScoreList(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list =masterTotalSocerList(emrFaultVo); + return new OffsetLimitPage((Page) list); + } + @Override public List faultBackScoreList(Emr_Fault_Vo emrFaultVo) { List list= emrFaultDetailMapper.faultBackScoreList(emrFaultVo); diff --git a/src/main/resources/mapper/Emr_Fault_DetailMapper.xml b/src/main/resources/mapper/Emr_Fault_DetailMapper.xml index f6481755..0581e817 100644 --- a/src/main/resources/mapper/Emr_Fault_DetailMapper.xml +++ b/src/main/resources/mapper/Emr_Fault_DetailMapper.xml @@ -67,6 +67,8 @@ + + id, archive_detail_id, assort_id, parent_id, content,price, score, back_content, first_trial,state,recall_reason @@ -411,6 +413,8 @@ delete from emr_fault_detail where id = #{id,jdbcType=INTEGER} + + delete from emr_fault_detail where 1=1 and back_flag is null and state is not null @@ -426,7 +430,11 @@ and archive_detail_id = #{archiveDetailId,jdbcType=NVARCHAR} - + + delete from emr_fault_detail_end + where id_page = #{idPage} + + insert into emr_fault_detail (id, archive_detail_id, assort_id, parent_id, content,price, score, back_content, first_trial,state,recall_reason,creater, @@ -498,6 +506,9 @@ minus_point, + + priceTwo, + @@ -557,8 +568,141 @@ #{minusPoint,jdbcType=NVARCHAR}, + + #{priceTwo,jdbcType=NVARCHAR}, + + + + insert into emr_fault_detail_end + + + id, + + + archive_detail_id, + + + assort_id, + + + parent_id, + + + content, + + + priceTwo, + + + score, + + + back_content, + + + first_trial, + + + state, + + + recall_reason, + + + creater, + + + create_time, + + + updater, + + + update_time, + + + back_flag, + + + deal_flag, + + + archive_state, + + + minus_point, + + + id_page, + + + + + #{id,jdbcType=INTEGER}, + + + #{archiveDetailId,jdbcType=NVARCHAR}, + + + #{assortId,jdbcType=NVARCHAR}, + + + #{parentId,jdbcType=INTEGER}, + + + #{content,jdbcType=NVARCHAR}, + + + #{priceTwo,jdbcType=NVARCHAR}, + + + #{score,jdbcType=DECIMAL}, + + + #{backContent,jdbcType=NVARCHAR}, + + + #{firstTrial,jdbcType=NVARCHAR}, + + + #{state,jdbcType=NVARCHAR}, + + + #{recallReason,jdbcType=VARCHAR}, + + + #{creater,jdbcType=NVARCHAR}, + + + #{createTime,jdbcType=NCHAR}, + + + #{updater,jdbcType=NVARCHAR}, + + + #{updateTime,jdbcType=NCHAR}, + + + #{backFlag,jdbcType=NVARCHAR}, + + + #{dealFlag,jdbcType=NVARCHAR}, + + + #{archiveState,jdbcType=NVARCHAR}, + + + #{minusPoint,jdbcType=NVARCHAR}, + + + #{idPage,jdbcType=INTEGER}, + + + + + update emr_fault_detail @@ -847,6 +991,120 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Emr_Fault_TypeMapper.xml b/src/main/resources/mapper/Emr_Fault_TypeMapper.xml index 8532c3c3..977376da 100644 --- a/src/main/resources/mapper/Emr_Fault_TypeMapper.xml +++ b/src/main/resources/mapper/Emr_Fault_TypeMapper.xml @@ -14,10 +14,11 @@ + id, archive_detail_id, type_flag, type_name, type_sort, effective,price, remark, creater, - create_time, updater, update_time + create_time, updater, update_time,priceTwo + +
+ + +
+
+ + +
+
+ +
+ + - + +
+
+
+ + +
+
+ + + <%-- --%> +
+ <%--
+ + + <%––%> +
--%> + <%--
--%> + <%----%> + <%----%> + <%--<%––%>--%> + <%--
--%> +
+ + +
+
+ + +
+ + + + + + + + +
+
+
+
+ +
+ +
+
+ + + + + + + \ No newline at end of file