xiaochan пре 3 месеци
родитељ
комит
e0f5703ec7

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>thyyxxk</groupId>
     <artifactId>web-server</artifactId>
-    <version>13.3.2</version>
+    <version>13.3.4</version>
     <name>web-server</name>
     <description>server for yibao-web</description>
     <properties>

+ 1 - 1
src/main/java/thyyxxk/webserver/controller/inpatient/TransferInOfExpensesController.java

@@ -70,7 +70,7 @@ public class TransferInOfExpensesController {
     }
 
     @GetMapping("/getDzfpQrcodeBySerialNo")
-    public ResultVo<String> getDzfpQrcodeBySerialNo(@RequestParam("serialNo") Integer serialNo) {
+    public ResultVo<CorrectInvoice.DzcfVo> getDzfpQrcodeBySerialNo(@RequestParam("serialNo") Integer serialNo) {
         return service.getDzfpQrcodeBySerialNo(serialNo);
     }
 

+ 11 - 3
src/main/java/thyyxxk/webserver/dao/his/inpatient/TransferInOfExpensesDao.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.dao.his.inpatient;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.*;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
@@ -9,6 +10,7 @@ import thyyxxk.webserver.entity.inpatient.ZyActpatient;
 import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.transferInOfExpenses.data.CorrectInvoice;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -130,9 +132,9 @@ public interface TransferInOfExpensesDao {
                                      @Param("tableName") String tableName,
                                      @Param("serialNo") Integer serialNo);
 
-    @Select("select rtrim(patient_id) patient_id, times, receipt_no, serial_no from mz_receipt_serial " +
+    @Select("select rtrim(patient_id) as patient_id, times, receipt_no, serial_no,operator_id  as opId from mz_receipt_serial " +
             " where receipt_sn = #{serialNo} " +
-            "group by patient_id, times, receipt_no, serial_no")
+            "group by patient_id, times, receipt_no, serial_no,operator_id")
     CorrectInvoice getSerialNoByInvoiceNo(@Param("serialNo") Integer serialNo);
 
     /**
@@ -250,10 +252,16 @@ public interface TransferInOfExpensesDao {
     List<GetDropdownBox> queryEntryName(@Param("pyCode") String pyCode);
 
 
-    @Select("select qrcode\n" +
+    @Select("select qrcode,charge_code,name = (select rtrim(name) from mz_patient_mi where mz_patient_mi.patient_id = mz_dzfp_upload.patient_id) " +
             "from mz_dzfp_upload\n" +
             "where patient_id = '${patientId}'\n" +
             "  and times = ${times}\n" +
             "  and receipt_no = ${receiptNo} and type_flag = 5 and del_flag = 0")
     CorrectInvoice.DzcfVo getMzDzcfUpload(CorrectInvoice params);
+
+
+    @Select("select sum(cast((quantity * drug_win * unit_price) as decimal(14, 2))) as money " +
+            "from mz_charge_detail " +
+            "${ew.customSqlSegment}")
+    BigDecimal getDzfpChangeTotal(@Param("ew") QueryWrapper<?> qw);
 }

+ 14 - 0
src/main/java/thyyxxk/webserver/entity/transferInOfExpenses/data/CorrectInvoice.java

@@ -60,6 +60,20 @@ public class CorrectInvoice {
     @Data
     public static class DzcfVo {
         private String qrCode;
+        private String name;
+        private String chargeCode;
         private String patientId;
+
+        /**
+         * 打印日期
+         */
+        private String printDate;
+
+        /**
+         * 总金额
+         */
+        private String total;
+
+        private String opName;
     }
 }

+ 40 - 10
src/main/java/thyyxxk/webserver/service/inpatient/TransferInOfExpensesService.java

@@ -1,6 +1,9 @@
 package thyyxxk.webserver.service.inpatient;
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -19,12 +22,11 @@ import thyyxxk.webserver.entity.inpatient.ZyActpatient;
 import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.transferInOfExpenses.data.CorrectInvoice;
 import thyyxxk.webserver.service.PublicServer;
+import thyyxxk.webserver.service.hutoolcache.UserCache;
 import thyyxxk.webserver.utils.*;
 
 import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -42,6 +44,7 @@ public class TransferInOfExpensesService {
     private final TransferInOfExpensesDao dao;
     private final PublicServer publicServer;
     private final RestTemplateUtils template;
+    private final UserCache userCache;
 
     @Value("${thmz-api-url}")
     private String thmzApiUrl;
@@ -180,21 +183,48 @@ public class TransferInOfExpensesService {
         return R.fail(ExceptionEnum.LOGICAL_ERROR, resultVo.getMessage());
     }
 
-    public ResultVo<String> getDzfpQrcodeBySerialNo(Integer serialNo) {
+    /**
+     * 获取发票的二维码
+     *
+     * @param serialNo 机制号
+     * @return 数据
+     */
+    public ResultVo<CorrectInvoice.DzcfVo> getDzfpQrcodeBySerialNo(Integer serialNo) {
         CorrectInvoice correctInvoice = dao.getSerialNoByInvoiceNo(serialNo);
-        return getDzfpQrcodeByCorrectInvoice(correctInvoice);
+        return getDzfpQrcodeByCorrectInvoice(correctInvoice, serialNo);
     }
 
-    public ResultVo<String> getDzfpQrcodeByCorrectInvoice(CorrectInvoice correctInvoice) {
+    public ResultVo<CorrectInvoice.DzcfVo> getDzfpQrcodeByCorrectInvoice(CorrectInvoice correctInvoice, Integer serialNo) {
         if (correctInvoice == null) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有找到该发票号");
         }
         // 查询是否已经冲正了,如果冲正了就直接用冲正的东西
-        CorrectInvoice.DzcfVo mzDzcfUpload = dao.getMzDzcfUpload(correctInvoice);
-        if (mzDzcfUpload != null) {
-            return R.ok(mzDzcfUpload.getQrCode());
+        CorrectInvoice.DzcfVo uploadData = dao.getMzDzcfUpload(correctInvoice);
+
+        if (uploadData == null) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有找到电子发票");
         }
-        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有找到电子发票");
+        List<String> changeCodes = StrUtil.isNotBlank(uploadData.getChargeCode()) ? Arrays.asList(uploadData.getChargeCode().split(",")) : null;
+
+        QueryWrapper<?> qw = new QueryWrapper<>();
+        qw.eq("patient_id", correctInvoice.getPatientId())
+                .eq("times", correctInvoice.getTimes())
+                .eq("receipt_no", correctInvoice.getReceiptNo())
+                .eq("serial_no", serialNo)
+                .in("charge_item_code", changeCodes);
+
+        BigDecimal dzfpChangeTotal = dao.getDzfpChangeTotal(qw);
+        uploadData.setPatientId(correctInvoice.getPatientId());
+
+        if (dzfpChangeTotal != null) {
+            uploadData.setTotal(dzfpChangeTotal.toPlainString());
+        } else {
+            uploadData.setTotal("0");
+        }
+        uploadData.setOpName(userCache.getEmployeeName(correctInvoice.getOpId()));
+        uploadData.setPrintDate(DateUtil.format(new Date(), DatePattern.CHINESE_DATE_FORMAT));
+        return R.ok(uploadData);
+
     }
 
 

+ 1 - 1
src/main/java/thyyxxk/webserver/utils/RestTemplateUtils.java

@@ -24,7 +24,7 @@ public class RestTemplateUtils {
     public <T> ResultVo<T> post(String url, Object req, Class<T> clazz, String logName) {
         ResultVo<T> body = template.exchange(url, HttpMethod.POST, new HttpEntity<>(req), new ParameterizedTypeReference<ResultVo<T>>() {
         }).getBody();
-        log.info("接口:{}\n参数:{}\n返回值:{}", logName, JSONUtil.toJsonStr(req), JSONUtil.toJsonStr(body));
+        log.info("{}--------------->\n参数:{}\n返回值:{}", logName, JSONUtil.toJsonStr(req), JSONUtil.toJsonStr(body));
         return body;
     }
 }