Răsfoiți Sursa

update 修改处方登记信息 先登记后销售

bzd_lxf 6 luni în urmă
părinte
comite
580537fc76

+ 1 - 1
health-admin/src/main/java/com/bzd/web/controller/dtp/RecipeRegisterController.java

@@ -151,7 +151,7 @@ public class RecipeRegisterController extends BaseController {
         if(p.get("code").toString().equals("200")){
             return AjaxResult.success(p);
         }else{
-            return AjaxResult.error(p.get("msg").toString());
+            return AjaxResult.error(p.get("msg").toString(),"");
         }
 
     }

+ 1 - 1
health-admin/src/main/resources/application.yml

@@ -1,5 +1,5 @@
 # 项目相关配置
-bzd:
+health:
   # 名称
   name: bzd
   # 版本

+ 144 - 52
health-admin/src/main/resources/templates/dtp/recipe/edit.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
 <head>
-    <th:block th:include="include :: header('新建登记')" />
+    <th:block th:include="include :: header('处方登记信息修改')" />
     <th:block th:include="include :: select2-css" />
     <th:block th:include="include :: bootstrap-fileinput-css" />
     <th:block th:include="include :: layout-latest-css" />
@@ -16,10 +16,10 @@
                 <label>患者姓名:</label>
                 <input name="patientName" placeholder="患者姓名" id="patientName" readonly disabled class="styled-input" type="text">
             </div>
-            <div class="customize-form-group">
+            <!--<div class="customize-form-group">
                 <label>手机号码:</label>
                 <input name="patientPhone" placeholder="手机号码" id="patientPhone" readonly disabled class="styled-input" type="text">
-            </div>
+            </div>-->
             <div class="customize-form-group">
                 <label>性别:</label>
                 <input name="gender" placeholder="性别" id="gender" readonly disabled class="styled-input" type="text">
@@ -80,7 +80,7 @@
             </div>
             <div class="customize-form-group">
                 <label>审核药师姓名:</label>
-                <input name="reviewingName" id="reviewingName" placeholder="审核药师姓名"   class="styled-input" type="text">
+                <input name="reviewingName" id="reviewingName" placeholder="审核药师姓名" readonly disabled  class="styled-input" type="text">
             </div>
         </div>
     </form>
@@ -88,11 +88,11 @@
     <input type="hidden" id="prescriptionNumber" name="prescriptionNumber" th:value="${prescriptionNumber}">
     <!-- 假设这是你的 HTML 结构class="table table-bordered" -->
     <div class="ibox" id="data-ibox" style="overflow: auto;">
-        <div class="ibox-title">药品登记列表</div>
+        <div class="ibox-title" style="width: 100%;">药品登记列表</div>
         <table class="fixed-layout-table" id="drugInfoTable">
             <thead>
             <tr>
-                <th>操作+<a type="button" onclick="selectUsersToParentCallBack2()">添加药品</a></th>
+                <th>操作+<a type="button" class="btn btn-primary btn-sm" onclick="selectUsersToParentCallBack2()">添加药品</a></th>
                 <th>药品编码</th>
                 <th>药品名</th>
                 <th class="hidden-column">通用名</th>
@@ -104,11 +104,11 @@
                 <th class="hidden-column">是否登记管理品</th>
                 <th class="hidden-column">是否慈善援助管理品</th>
                 <th class="hidden-column">包装</th>
-                <th class="is-required">取药数量</th>
-                <th class="is-required">单次剂量</th>
+                <th class="is-required">取药数量(购药数量)</th>
+                <th class="is-required">单次剂量</th>
                 <th class="is-required">单次剂量单位</th>
                 <th class="is-required">用药频次</th>
-                <th class="is-required">用药天数</th>
+                <th class="is-required">用药天数(购药包装单位)</th>
                 <th>D值品用药天数</th>
 
             </tr>
@@ -232,8 +232,6 @@
             // 获取选中的患者对象
             var selectedPatient = getSelectedPatient();
             if (selectedPatient) {
-                console.log('Selected Patient:', selectedPatient);
-
                 // 调用 getLastRecipe 方法,传入患者的 ID
                 var patientId = selectedPatient.id;
                 getLastRecipe(patientId);
@@ -278,12 +276,9 @@
 
     function getLastRecipe(patientId){
         var datas=[];
-        debugger
-
         var data = {
             "patientId":patientId,
         };
-        console.log("patientId="+patientId);
         // 初始化表格 getDrugPurchaseList
         $.ajax({
             cache : true,
@@ -317,8 +312,6 @@
 
 
                 }
-
-                console.log("shangciObj="+shangciObj);
                 $.operate.successCallback(data);
 
             }
@@ -396,7 +389,16 @@
     function submitHandler() {
         // 创建一个 FormData 对象用于提交表单数据
         var formData = new FormData();
-
+        var prescribingDoctor = $('#prescribingDoctor').val();
+        if (prescribingDoctor == ''|| prescribingDoctor == null|| prescribingDoctor == undefined){
+            $.modal.alertError("请输入处方医生");
+            return;
+        }
+        var prescriptionIssueDate = $('#prescriptionIssueDate').val();
+        if (prescriptionIssueDate == ''|| prescriptionIssueDate == null|| prescriptionIssueDate == undefined){
+            $.modal.alertError("处方开具日期");
+            return;
+        }
         // 收集表单中的其他字段,并将其添加到 FormData 中
         $('#dtp-form-newcfxx').find(':input').each(function() {
             var $this = $(this);
@@ -410,11 +412,53 @@
         });
 
 // 将药物数据序列化为 JSON 字符串并添加到 FormData 中
-        var drugData = getTableData(); // 假设此函数正确获取表格数据
-        if (drugData.length > 0) {
-            formData.append('drugData', JSON.stringify(drugData));
-        }else{
-            $.modal.alertError("请添加药品");
+        var tableRows = [];
+        var falg = true;
+        $('#drugInfoTable tbody tr').each(function(index, row) {
+            var rowData = {
+                productId: $(row).data('product-id'),
+                mdmCode: $(row).find('td:eq(1)').text().trim(),
+                productName: $(row).find('td:eq(2)').text().trim(),
+                genericName: $(row).find('td:eq(3)').text().trim(),
+                specification: $(row).find('td:eq(4)').text().trim(),
+                manufacturerShortName: $(row).find('td:eq(5)').text().trim(),
+                administrationMethod: $(row).find('td:eq(6)').text().trim(),
+                followUpItem: $(row).find('td:eq(7)').text().trim(),
+                coldChainItem: $(row).find('td:eq(8)').text().trim(),
+                registeredItem: $(row).find('td:eq(9)').text().trim(),
+                charityAidItem: $(row).find('td:eq(10)').text().trim(),
+                packaging: $(row).find('td:eq(11)').text().trim(),
+                packageQuantity: $(row).find('input[name="packageQuantity"]').val(),
+                singleDoseValue: $(row).find('input[name="singleDoseValue"]').val(),
+                singleDoseUnit: $(row).find('select[name="singleDoseUnit"]').val(),
+                dosageFrequency: $(row).find('select[name="dosageFrequency"]').val(),
+                dosageFrequencyDays: $(row).find('input[name="dosageFrequencyDays"]').val(),
+                dvalueDays: $(row).find('input[name="dvalueDays"]').val()
+            };
+            if (rowData.packageQuantity == ''|| rowData.packageQuantity == null|| rowData.packageQuantity == undefined){
+                $.modal.alertError("请输入包装数量");
+                falg = false;
+                return falg;
+            }
+            if (rowData.singleDoseValue == ''|| rowData.singleDoseValue == null|| rowData.singleDoseValue == undefined){
+                $.modal.alertError("请输入单次剂量数值");
+                falg = false;
+                return falg;
+            }
+            if (rowData.singleDoseUnit == ''|| rowData.singleDoseUnit == null|| rowData.singleDoseUnit == undefined){
+                $.modal.alertError("请选择单次剂量单位");
+                falg = false;
+                return falg;
+            }
+            if (rowData.dosageFrequency == ''|| rowData.dosageFrequency == null|| rowData.dosageFrequency == undefined){
+                $.modal.alertError("请选择频次");
+                falg = false;
+                return falg;
+            }
+            // 将每一行的数据对象添加到数组中
+            tableRows.push(rowData);
+        });
+        if (!falg){
             return;
         }
         var id = $('#id').val().trim();
@@ -510,31 +554,33 @@
                     <td class="hidden-column">${columnsData.registeredItem === 1 ? '是' : '否'}</td>
                     <td class="hidden-column">${columnsData.charityAidItem === 1 ? '是' : '否'}</td>
                     <td class="hidden-column">${columnsData.packaging}</td>
-                    <td> <input name="packageQuantity" id="packageQuantity${columnsData.productId}" placeholder="取药数量(包装数)" class="styled-input" type="number"></td>
-                    <td> <input name="singleDoseValue" id="singleDoseValue${columnsData.productId}" placeholder="单次剂量数值" class="styled-input" type="number"></td>
+                    <td> <input name="packageQuantity" id="packageQuantity${columnsData.productId}" placeholder="取药数量(包装数)" class="styled-input" style="width: 170px;" type="number"></td>
+                    <td> <input name="singleDoseValue" id="singleDoseValue${columnsData.productId}" placeholder="单次剂量数值" class="styled-input" style="width: 170px;" type="number"></td>
                     <td>
-                        <select name="singleDoseUnit" id="singleDoseUnit${columnsData.productId}" class="styled-input" required>
+                        <select name="singleDoseUnit" id="singleDoseUnit${columnsData.productId}" class="styled-input" style="width: 170px;" required>
                             <option value="">请选择</option>
-                            <option value="1">mg</option>
+                            <!--<option value="1">mg</option>
                             <option value="2">g</option>
-                            <option value="3">片</option>
+                            <option value="3">片</option>-->
                         </select>
                     </td>
                     <td>
-                        <select name="dosageFrequency" id="dosageFrequency${columnsData.productId}" class="styled-input" required>
+                        <select name="dosageFrequency" id="dosageFrequency${columnsData.productId}" class="styled-input" style="width: 170px;" required>
                             <option value="">请选择</option>
-                            <option value="1">一日1次</option>
+                            <!--<option value="1">一日1次</option>
                             <option value="2">一日2次</option>
                             <option value="3">每天1次</option>
                             <option value="4">每天隔天一次</option>
-                            <option value="5">每周2次</option>
+                            <option value="5">每周2次</option>-->
                         </select>
                     </td>
-                    <td> <input name="dosageFrequencyDays" id="dosageFrequencyDays${columnsData.productId}" placeholder="用药频次换算天数" class="styled-input" type="number"></td>
-                    <td> <input name="dvalueDays" id="dvalueDays${columnsData.productId}" placeholder="系统自动计算" class="styled-input" disabled="" type="number"></td>
+                    <td> <input name="dosageFrequencyDays" id="dosageFrequencyDays${columnsData.productId}" placeholder="用药频次换算天数" class="styled-input" style="width: 170px;" type="number"></td>
+                    <td> <input name="dvalueDays" id="dvalueDays${columnsData.productId}" placeholder="系统自动计算" class="styled-input" disabled="" style="width: 140px;" type="number"></td>
                 </tr>
             `;
                 tableBody.append(row);
+                dataInfo(columnsData.productId)
+                bindDosageFrequencyChangeListener(columnsData.productId);
             } else {
                 $.modal.alertWarning(`药品 ${columnsData.productName} 已经添加了`);
             }
@@ -542,6 +588,44 @@
 
         $.modal.close(index);
     }
+    function dataInfo(productId){
+        /*<![CDATA[*/
+        var storeTypes = /*[[${@dict.getType('sys_gxhpz_gg_unitall')}]]*/ [];
+        /*]]>*/
+        /*<![CDATA[*/
+        var pcTypes = /*[[${@dict.getType('sys_select_dtp_ysfw_sfpx')}]]*/ [];
+        /*]]>*/
+        // 获取<select>元素
+        var selectElement = document.getElementById('singleDoseUnit' + productId);
+        var pcselectElement = document.getElementById('dosageFrequency' + productId);
+        storeTypes.forEach(function(item, index){
+            console.log("item"+item.dictLabel);
+            console.log("dictValue"+item.dictValue);
+            var option = document.createElement("option");
+            option.value = item.dictValue;
+            option.text = item.dictLabel;
+            selectElement.add(option);
+        })
+        pcTypes.forEach(function(item, index){
+            console.log("item"+item.dictLabel);
+            console.log("dictValue"+item.dictValue);
+            var option = document.createElement("option");
+            option.value = item.dictValue;
+            option.text = item.dictLabel;
+            pcselectElement.add(option);
+        })
+    }
+    // 动态绑定用药频次选择事件
+    function bindDosageFrequencyChangeListener(productId) {
+        $(`#dosageFrequency${productId}`).on('change', function () {
+            var selectedValue = $(this).val();
+            if (selectedValue) {
+                $(`#dosageFrequencyDays${productId}`).val(selectedValue);
+            } else {
+                $(`#dosageFrequencyDays${productId}`).val('');
+            }
+        });
+    }
     function deleteRow(productId) {
         $.modal.confirm("确认删除该药品吗?", function() {
             // 删除对应行
@@ -581,7 +665,6 @@
     }
     function search_hz() {
         var query = $('#query').val().trim();
-        console.log("query===="+query);
         // 如果输入为空,清空 dValueId 输入框并停止进一步操作
         if (!query) {
             $('#query').val('');
@@ -601,7 +684,6 @@
 
                 if(data.code==0){
                     dataList=[];
-                    console.log("data111===="+data.data);
                     populatePatientTable(data.data);
                     dataList=data.data;
                     // 如果有且只有一条记录,默认选中这条记录
@@ -659,7 +741,6 @@
     }
     $(document).ready(function() {
         var id = $('#id').val().trim();
-        console.log("id----->"+id)
         var datas=[];
         var data = {
             "id":id,
@@ -705,8 +786,8 @@
             var columnsData = {
                 productId: item.id,
                 productCode: item.mdmCode,
-                productName: item.productName,
-                genericName: item.genericName,
+                productName: item.productName || "",
+                genericName: item.genericName || "",
                 specification: item.specification,
                 packaging: item.packaging,
                 manufacturer: item.manufacturer,
@@ -745,31 +826,33 @@
                     <td class="hidden-column">${columnsData.registeredItem === 1 ? '是' : '否'}</td>
                     <td class="hidden-column">${columnsData.charityAidItem === 1 ? '是' : '否'}</td>
                     <td class="hidden-column">${columnsData.packaging}</td>
-                    <td> <input name="packageQuantity" id="packageQuantity${columnsData.productId}" placeholder="取药数量(包装数)" class="styled-input" type="number"></td>
-                    <td> <input name="singleDoseValue" id="singleDoseValue${columnsData.productId}" placeholder="单次剂量数值" class="styled-input" type="number"></td>
+                    <td> <input name="packageQuantity" id="packageQuantity${columnsData.productId}" placeholder="取药数量(包装数)" class="styled-input" style="width: 170px;" type="number"></td>
+                    <td> <input name="singleDoseValue" id="singleDoseValue${columnsData.productId}" placeholder="单次剂量数值" class="styled-input" style="width: 170px;" type="number"></td>
                     <td>
-                        <select name="singleDoseUnit" id="singleDoseUnit${columnsData.productId}" class="styled-input" required>
+                        <select name="singleDoseUnit" id="singleDoseUnit${columnsData.productId}" class="styled-input" style="width: 170px;" required>
                             <option value="">请选择</option>
-                            <option value="1">mg</option>
+                            <!--<option value="1">mg</option>
                             <option value="2">g</option>
-                            <option value="3">片</option>
+                            <option value="3">片</option>-->
                         </select>
                     </td>
                     <td>
-                        <select name="dosageFrequency" id="dosageFrequency${columnsData.productId}" class="styled-input" required>
+                        <select name="dosageFrequency" id="dosageFrequency${columnsData.productId}" class="styled-input" style="width: 170px;" required>
                             <option value="">请选择</option>
-                            <option value="1">一日1次</option>
+                            <!--<option value="1">一日1次</option>
                             <option value="2">一日2次</option>
                             <option value="3">每天1次</option>
                             <option value="4">每天隔天一次</option>
-                            <option value="5">每周2次</option>
+                            <option value="5">每周2次</option>-->
                         </select>
                     </td>
-                    <td> <input name="dosageFrequencyDays" id="dosageFrequencyDays${columnsData.productId}" placeholder="用药频次换算天数" class="styled-input" type="number"></td>
-                    <td> <input name="dvalueDays" id="dvalueDays${columnsData.productId}" placeholder="系统自动计算" class="styled-input" disabled="" type="number"></td>
+                    <td> <input name="dosageFrequencyDays" id="dosageFrequencyDays${columnsData.productId}" placeholder="用药频次换算天数" class="styled-input" style="width: 170px;" type="number"></td>
+                    <td> <input name="dvalueDays" id="dvalueDays${columnsData.productId}" placeholder="系统自动计算" class="styled-input" disabled="" style="width: 140px;" type="number"></td>
                 </tr>
             `;
                 tableBody.append(row);
+                dataInfo(columnsData.productId)
+                bindDosageFrequencyChangeListener(columnsData.productId);
                 $('#packageQuantity'+columnsData.productId ).val(columnsData.packageQuantity);
                 $('#singleDoseValue'+columnsData.productId ).val(columnsData.singleDoseValue);
                 // 设置 select 元素的值,这将会选中 value 与 columnsData.singleDoseValue 匹配的 option
@@ -845,19 +928,28 @@
     body {
         font-family: Arial, sans-serif;
     }
-    table {
-        width: 500px;
+    /* 使用ID选择器来确保样式仅应用于特定表格 */
+    #drugInfoTable {
+        /*width: 500px;*/
         border-collapse: collapse;
     }
-    th, td {
+
+    /* 使用后代选择器来确保样式仅应用于该表格内的th和td元素 */
+    #drugInfoTable th, #drugInfoTable td {
         text-align: left;
         padding: 5px;
         border-bottom: 1px solid #ddd;
     }
-    tr:nth-child(even) {
-        width: 13px;
+
+    /* 使用后代选择器来确保样式仅应用于该表格内的tr元素 */
+    #drugInfoTable tr:nth-child(even) {
         background-color: #f2f2f2;
     }
+
+    /* 修正了宽度设置,因为宽度通常不应该应用于行(tr),而是应用于单元格(td或th) */
+    #drugInfoTable tr:nth-child(even) td {
+        width: auto; /* 根据内容自动调整宽度 */
+    }
     .hidden-column {
         display: none;
     }

+ 170 - 34
health-admin/src/main/resources/templates/dtp/recipe/newRecipe.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
 <head>
-    <th:block th:include="include :: header('新建登记')" />
+    <th:block th:include="include :: header('处方登记信息')" />
     <th:block th:include="include :: select2-css" />
     <th:block th:include="include :: bootstrap-fileinput-css" />
     <th:block th:include="include :: layout-latest-css" />
@@ -54,7 +54,7 @@
                             <input name="hospital" placeholder="医院" id="hospital" class="styled-input" type="text">
                         </div>
                         <div class="customize-form-group">
-                            <label>处方医生:</label>
+                            <label class="is-required">处方医生:</label>
                             <input name="prescribingDoctor" id="prescribingDoctor" placeholder="处方医生"   class="styled-input" type="text">
                         </div>
                         <div class="customize-form-group">
@@ -78,7 +78,7 @@
                             <input name="prescriptionImageUrl" id="prescriptionImageUrl" placeholder="处方图片"  class="styled-input" type="text">
                         </div>
                         <div class="customize-form-group  select-time">
-                            <label>处方开具日期:</label>
+                            <label class="is-required">处方开具日期:</label>
                             <input name="prescriptionIssueDate" id="prescriptionIssueDate" placeholder="处方开具日期"   class="time-input time-input2" type="text">
                         </div>
                         <div class="customize-form-group">
@@ -99,19 +99,27 @@
                             <label class="is-required">登记人:</label>
                             <input name="registrant" id="registrant" placeholder="登记人"  class="styled-input" type="text">
                         </div>
-                        <div class="customize-form-group">
+                        <!--<div class="customize-form-group">
                             <label>审核药师姓名:</label>
                             <input name="reviewingName" id="reviewingName" placeholder="审核药师姓名"   class="styled-input" type="text">
+                        </div>-->
+                        <div class="customize-form-group">
+                            <label>处方类型</label>
+                            <select name="prescriptionType"  th:with="type=${@dict.getType('sys_select_prescription_ype')}" class="styled-input">
+                                <option value="">全部</option>
+                                <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                ></option>
+                            </select>
                         </div>
                     </div>
      </form>
         <!-- 假设这是你的 HTML 结构class="table table-bordered" -->
         <div class="ibox" id="data-ibox" style="overflow: auto;">
-            <div class="ibox-title">药品登记列表</div>
-            <table class="fixed-layout-table" id="drugInfoTable">
+            <div class="ibox-title" style="width: 100%;">药品登记列表</div>
+            <table class="fixed-layout-table table1" id="drugInfoTable">
                 <thead>
                 <tr>
-                    <th>操作+<a type="button" onclick="selectUsersToParentCallBack2()">添加药品</a></th>
+                    <th>操作+<a type="button" class="btn btn-primary btn-sm" onclick="selectUsersToParentCallBack2()">添加药品</a></th>
                     <th>药品编码</th>
                     <th>药品名</th>
                     <th class="hidden-column">通用名</th>
@@ -123,8 +131,8 @@
                     <th class="hidden-column">是否登记管理品</th>
                     <th class="hidden-column">是否慈善援助管理品</th>
                     <th class="hidden-column">包装</th>
-                    <th class="is-required">取药数量</th>
-                    <th class="is-required">单次剂量</th>
+                    <th class="is-required">取药数量(购药数量)</th>
+                    <th class="is-required">单次剂量</th>
                     <th class="is-required">单次剂量单位</th>
                     <th class="is-required">用药频次</th>
                     <th class="is-required">用药天数</th>
@@ -245,8 +253,6 @@
             // 获取选中的患者对象
             var selectedPatient = getSelectedPatient();
             if (selectedPatient) {
-                console.log('Selected Patient:', selectedPatient);
-
                 // 调用 getLastRecipe 方法,传入患者的 ID
                 var patientId = selectedPatient.id;
                 getLastRecipe(patientId);
@@ -293,7 +299,6 @@
         var data = {
             "patientId":patientId,
         };
-        console.log("patientId="+patientId);
         // 初始化表格 getDrugPurchaseList
         $.ajax({
             cache : true,
@@ -326,8 +331,6 @@
                     $('#attendingDoctor').val('');
 
                 }
-
-                console.log("shangciObj="+shangciObj);
                 $.operate.successCallback(data);
 
             }
@@ -394,7 +397,26 @@ function initTab(datas){
                 dosageFrequencyDays: $(row).find('input[name="dosageFrequencyDays"]').val(),
                 dvalueDays: $(row).find('input[name="dvalueDays"]').val()
             };
-
+            if (rowData.packageQuantity == ''|| rowData.packageQuantity == null|| rowData.packageQuantity == undefined){
+                $.modal.alertError("请输入包装数量");
+                return;
+            }
+            if (rowData.singleDoseValue == ''|| rowData.singleDoseValue == null|| rowData.singleDoseValue == undefined){
+                $.modal.alertError("请输入单次剂量数值");
+                return;
+            }
+            if (rowData.singleDoseUnit == ''|| rowData.singleDoseUnit == null|| rowData.singleDoseUnit == undefined){
+                $.modal.alertError("请输入单次剂量单位");
+                return;
+            }
+            if (rowData.dosageFrequency == ''|| rowData.dosageFrequency == null|| rowData.dosageFrequency == undefined){
+                $.modal.alertError("请输入频次");
+                return;
+            }
+            /*if (rowData.dosageFrequencyDays == ''|| rowData.dosageFrequencyDays == null|| rowData.dosageFrequencyDays == undefined){
+                $.modal.alertError("请输入频次换算使用天数");
+                return;
+            }*/
             // 将每一行的数据对象添加到数组中
             tableRows.push(rowData);
         });
@@ -403,6 +425,16 @@ function initTab(datas){
     }
     function submitHandler() {
         prescriptionNumber='';
+        var prescribingDoctor = $('#prescribingDoctor').val();
+        if (prescribingDoctor == ''|| prescribingDoctor == null|| prescribingDoctor == undefined){
+            $.modal.alertError("请输入处方医生");
+            return;
+        }
+        var prescriptionIssueDate = $('#prescriptionIssueDate').val();
+        if (prescriptionIssueDate == ''|| prescriptionIssueDate == null|| prescriptionIssueDate == undefined){
+            $.modal.alertError("处方开具日期");
+            return;
+        }
         // 创建一个 FormData 对象用于提交表单数据
         var formData = new FormData();
         // 如果有文件上传,例如处方图片和发票图片
@@ -449,12 +481,67 @@ function initTab(datas){
         });
 
 // 将药物数据序列化为 JSON 字符串并添加到 FormData 中
-        var drugData = getTableData(); // 假设此函数正确获取表格数据
+        /*var drugData = getTableData(); // 假设此函数正确获取表格数据
         if (drugData.length > 0) {
             formData.append('drugData', JSON.stringify(drugData));
         }else{
             $.modal.alertError("请添加药品");
             return;
+        }*/
+        var tableRows = [];
+        var falg = true;
+        $('#drugInfoTable tbody tr').each(function(index, row) {
+            var rowData = {
+                productId: $(row).data('product-id'),
+                mdmCode: $(row).find('td:eq(1)').text().trim(),
+                productName: $(row).find('td:eq(2)').text().trim(),
+                genericName: $(row).find('td:eq(3)').text().trim(),
+                specification: $(row).find('td:eq(4)').text().trim(),
+                manufacturerShortName: $(row).find('td:eq(5)').text().trim(),
+                administrationMethod: $(row).find('td:eq(6)').text().trim(),
+                followUpItem: $(row).find('td:eq(7)').text().trim(),
+                coldChainItem: $(row).find('td:eq(8)').text().trim(),
+                registeredItem: $(row).find('td:eq(9)').text().trim(),
+                charityAidItem: $(row).find('td:eq(10)').text().trim(),
+                packaging: $(row).find('td:eq(11)').text().trim(),
+                packageQuantity: $(row).find('input[name="packageQuantity"]').val(),
+                singleDoseValue: $(row).find('input[name="singleDoseValue"]').val(),
+                singleDoseUnit: $(row).find('select[name="singleDoseUnit"]').val(),
+                dosageFrequency: $(row).find('select[name="dosageFrequency"]').val(),
+                dosageFrequencyDays: $(row).find('input[name="dosageFrequencyDays"]').val(),
+                dvalueDays: $(row).find('input[name="dvalueDays"]').val()
+            };
+            if (rowData.packageQuantity == ''|| rowData.packageQuantity == null|| rowData.packageQuantity == undefined){
+                $.modal.alertError("请输入包装数量");
+                falg = false;
+                return falg;
+            }
+            if (rowData.singleDoseValue == ''|| rowData.singleDoseValue == null|| rowData.singleDoseValue == undefined){
+                $.modal.alertError("请输入单次剂量数值");
+                falg = false;
+                return falg;
+            }
+            if (rowData.singleDoseUnit == ''|| rowData.singleDoseUnit == null|| rowData.singleDoseUnit == undefined){
+                $.modal.alertError("请选择单次剂量单位");
+                falg = false;
+                return falg;
+            }
+            if (rowData.dosageFrequency == ''|| rowData.dosageFrequency == null|| rowData.dosageFrequency == undefined){
+                $.modal.alertError("请选择频次");
+                falg = false;
+                return falg;
+            }
+            // 将每一行的数据对象添加到数组中
+            tableRows.push(rowData);
+        });
+        if (!falg){
+            return;
+        }
+        if (tableRows.length > 0) {
+            formData.append('drugData', JSON.stringify(tableRows));
+        }else{
+            $.modal.alertError("请添加药品");
+            return;
         }
 
         $.ajax({
@@ -469,7 +556,6 @@ function initTab(datas){
                 $.modal.alertError("操作失败");
             },
             success: function (data) {
-
                 if(data.data.code==200){
                     prescriptionNumber = data.data.prescriptionNumber;
                     openCheckYSJC();
@@ -683,31 +769,33 @@ function initTab(datas){
                     <td class="hidden-column">${columnsData.registeredItem === 1 ? '是' : '否'}</td>
                     <td class="hidden-column">${columnsData.charityAidItem === 1 ? '是' : '否'}</td>
                     <td class="hidden-column">${columnsData.packaging}</td>
-                    <td> <input name="packageQuantity" id="packageQuantity${columnsData.productId}" placeholder="取药数量(包装数)" class="styled-input" type="number"></td>
-                    <td> <input name="singleDoseValue" id="singleDoseValue${columnsData.productId}" placeholder="单次剂量数值" class="styled-input" type="number"></td>
+                    <td> <input name="packageQuantity" id="packageQuantity${columnsData.productId}" placeholder="取药数量(包装数)" class="styled-input" style="width: 170px;" type="number"></td>
+                    <td> <input name="singleDoseValue" id="singleDoseValue${columnsData.productId}" placeholder="单次剂量数值" class="styled-input" style="width: 170px;" type="number"></td>
                     <td>
-                        <select name="singleDoseUnit" id="singleDoseUnit${columnsData.productId}" class="styled-input" required>
+                        <select name="singleDoseUnit" id="singleDoseUnit${columnsData.productId}" class="styled-input" style="width: 170px;" required>
                             <option value="">请选择</option>
-                            <option value="1">mg</option>
+                            <!--<option value="1">mg</option>
                             <option value="2">g</option>
-                            <option value="3">片</option>
+                            <option value="3">片</option>-->
                         </select>
                     </td>
                     <td>
-                        <select name="dosageFrequency" id="dosageFrequency${columnsData.productId}" class="styled-input" required>
+                        <select name="dosageFrequency" id="dosageFrequency${columnsData.productId}" class="styled-input" style="width: 170px;" required>
                             <option value="">请选择</option>
-                            <option value="1">一日1次</option>
+                            <!--<option value="1">一日1次</option>
                             <option value="2">一日2次</option>
                             <option value="3">每天1次</option>
                             <option value="4">每天隔天一次</option>
-                            <option value="5">每周2次</option>
+                            <option value="5">每周2次</option>-->
                         </select>
                     </td>
-                    <td> <input name="dosageFrequencyDays" id="dosageFrequencyDays${columnsData.productId}" placeholder="用药频次换算天数" class="styled-input" type="number"></td>
-                    <td> <input name="dvalueDays" id="dvalueDays${columnsData.productId}" placeholder="系统自动计算" class="styled-input" disabled="" type="number"></td>
+                    <td> <input name="dosageFrequencyDays" id="dosageFrequencyDays${columnsData.productId}" placeholder="用药频次换算天数" class="styled-input" style="width: 170px;" type="number"></td>
+                    <td> <input name="dvalueDays" id="dvalueDays${columnsData.productId}" placeholder="系统自动计算" class="styled-input" disabled="" style="width: 140px;" type="number"></td>
                 </tr>
             `;
                 tableBody.append(row);
+                dataInfo(columnsData.productId);
+                bindDosageFrequencyChangeListener(columnsData.productId);
             } else {
                 $.modal.alertWarning(`药品 ${columnsData.productName} 已经添加了`);
             }
@@ -715,6 +803,47 @@ function initTab(datas){
 
         $.modal.close(index);
     }
+
+    function dataInfo(productId){
+        /*<![CDATA[*/
+        var storeTypes = /*[[${@dict.getType('sys_gxhpz_gg_unitall')}]]*/ [];
+        /*]]>*/
+        /*<![CDATA[*/
+        var pcTypes = /*[[${@dict.getType('sys_select_dtp_ysfw_sfpx')}]]*/ [];
+        /*]]>*/
+        // 获取<select>元素
+        var selectElement = document.getElementById('singleDoseUnit' + productId);
+        var pcselectElement = document.getElementById('dosageFrequency' + productId);
+        storeTypes.forEach(function(item, index){
+            console.log("item"+item.dictLabel);
+            console.log("dictValue"+item.dictValue);
+            var option = document.createElement("option");
+            option.value = item.dictValue;
+            option.text = item.dictLabel;
+            selectElement.add(option);
+        })
+        pcTypes.forEach(function(item, index){
+            console.log("item"+item.dictLabel);
+            console.log("dictValue"+item.dictValue);
+            var option = document.createElement("option");
+            option.value = item.dictValue;
+            option.text = item.dictLabel;
+            pcselectElement.add(option);
+        })
+    }
+    // 动态绑定用药频次选择事件
+    function bindDosageFrequencyChangeListener(productId) {
+        $(`#dosageFrequency${productId}`).on('change', function () {
+            debugger
+            var selectedValue = $(this).val();
+            if (selectedValue) {
+                $(`#dosageFrequencyDays${productId}`).val(selectedValue);
+            } else {
+                $(`#dosageFrequencyDays${productId}`).val('');
+            }
+        });
+    }
+
     function deleteRow(productId) {
         $.modal.confirm("确认删除该药品吗?", function() {
             // 删除对应行
@@ -754,7 +883,6 @@ function initTab(datas){
     }
     function search_hz() {
         var query = $('#query').val().trim();
-        console.log("query===="+query);
         // 如果输入为空,清空 dValueId 输入框并停止进一步操作
         if (!query) {
             $('#query').val('');
@@ -774,7 +902,6 @@ function initTab(datas){
 
                 if(data.code==0){
                     dataList=[];
-                    console.log("data111===="+data.data);
                     populatePatientTable(data.data);
                     dataList=data.data;
                     // 如果有且只有一条记录,默认选中这条记录
@@ -894,19 +1021,28 @@ function initTab(datas){
     body {
         font-family: Arial, sans-serif;
     }
-    table {
-        width: 500px;
+    /* 使用ID选择器来确保样式仅应用于特定表格 */
+    #drugInfoTable {
+        /*width: 500px;*/
         border-collapse: collapse;
     }
-    th, td {
+
+    /* 使用后代选择器来确保样式仅应用于该表格内的th和td元素 */
+    #drugInfoTable th, #drugInfoTable td {
         text-align: left;
         padding: 5px;
         border-bottom: 1px solid #ddd;
     }
-    tr:nth-child(even) {
-        width: 13px;
+
+    /* 使用后代选择器来确保样式仅应用于该表格内的tr元素 */
+    #drugInfoTable tr:nth-child(even) {
         background-color: #f2f2f2;
     }
+
+    /* 修正了宽度设置,因为宽度通常不应该应用于行(tr),而是应用于单元格(td或th) */
+    #drugInfoTable tr:nth-child(even) td {
+        width: auto; /* 根据内容自动调整宽度 */
+    }
     .hidden-column {
         display: none;
     }

+ 4 - 4
health-admin/src/main/resources/templates/dtp/recipe/newRecipeView.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
 <head>
-    <th:block th:include="include :: header('新建登记')" />
+    <th:block th:include="include :: header('处方登记信息详情')" />
     <th:block th:include="include :: select2-css" />
     <th:block th:include="include :: bootstrap-fileinput-css" />
     <th:block th:include="include :: layout-latest-css" />
@@ -17,10 +17,10 @@
                     <span class="label">患者姓名:</span>
                     <span class="value" id="patientName"></span>
                 </div>
-                <div class="info-item">
+                <!--<div class="info-item">
                     <span class="label">手机号码:</span>
                     <span class="value" id="phoneNumber"></span>
-                </div>
+                </div>-->
                 <div class="info-item">
                     <span class="label">性别:</span>
                     <span class="value" id="gender"></span>
@@ -187,7 +187,7 @@ function initTabShow(datas){
     tableElement.bootstrapTable({
         data: datas,
         columns : [
-            {field: 'prescriptionNumber', title: '销售' , width:'300px'},
+            {field: 'prescriptionNumber', title: '销售' , width:'250px'},
             { field: 'prescriptionDate', title: '处方日期' },
             { field: 'genericName', title: '药品通用名' },
             { field: 'productName', title: '商品名' },

+ 13 - 1
health-admin/src/main/resources/templates/dtp/recipe/recipe.html

@@ -155,7 +155,19 @@
 				title: "患者姓名"
 			}, {
 				field: "gender",
-				title: "性别"
+				title: "性别",
+				formatter: function(value, row, index) {
+					switch (value) {
+						case 0:
+							return "男";
+							break;
+						case 1:
+							return "女";
+							break;
+						default:
+							return "未知";
+					}
+				}
 			}, {
 				field: "age",
 				title: "年龄"

+ 0 - 1
health-admin/src/main/resources/templates/gxhpz/addRepurchasedGoods.html

@@ -174,7 +174,6 @@ if(drugData != null || drugData != undefined){
         $('#dValueKeyInput').on('input', function() {
             clearTimeout(timeout);
             var query = $('#dValueKeyInput').val().trim();
-            console.log("query===="+query);
             // 如果输入为空,清空 dValueId 输入框并停止进一步操作
             if (!query) {
                 $('#dValueIdInput').val('');

+ 92 - 91
health-system/src/main/java/com/bzd/system/service/DTPService.java

@@ -244,108 +244,108 @@ public class DTPService {
         int resultDrug=0;
         int drugQuantity=0;
 
-        if (StringUtils.isNotNull(drugList)) {
-            try {
-                // 将 JSON 字符串转换为 List<Map<String, Object>>
-                ObjectMapper objectMapper = new ObjectMapper();
-                List<Map<String, Object>> rowsdrugList = objectMapper.readValue(drugList.toString(), List.class);
-                drugQuantity=rowsdrugList.size();//处方取药数量
-                // 遍历列表并调用插入数据接口
-                if (rowsdrugList.size() > 0) {
-                    for (Map<String, Object> lxr : rowsdrugList) {
-                        PageData pageData = new PageData();
 
-                        // 设置固定或默认值
-                        pageData.put("createdBy", getSysUser().getLoginName());
-                        pageData.put("createdTime", DateUtils.getTime());
-                        pageData.put("storeId", getSysUser().getDeptId());
-
-                        // 从 lxr 获取数据并映射到数据库字段
-                        pageData.put("mdmCode", lxr.get("mdmCode"));
-                        pageData.put("productName", lxr.get("productName"));
-                        pageData.put("genericName", lxr.get("genericName"));
-                        pageData.put("specification", lxr.get("specification"));
-                        pageData.put("manufacturerShortName", lxr.get("manufacturerShortName"));
-                        pageData.put("administrationMethod", lxr.get("administrationMethod"));
-                        pageData.put("packageQuantity", lxr.get("packageQuantity"));//处方取药数量(包装数)输入框的值
-                        pageData.put("singleDoseValue", lxr.get("singleDoseValue"));//处方单次剂量数值 输入框的值
-                        pageData.put("singleDoseUnit", lxr.get("singleDoseUnit"));//处方单次剂量单位
-                        pageData.put("dosageFrequency", lxr.get("dosageFrequency"));//规范用药频次
-                        pageData.put("dosageFrequencyDays", lxr.get("dosageFrequencyDays"));//用药频次换算使用天数 下拉带出来的 要去字典的value
-                        pageData.put("dvalueDays", 1);//待计算
-
-
-                        // 添加其他可能需要的字段(如果有的话)
-                        pageData.put("medicationRoute", lxr.get("medicationRoute"));
-                        //pageData.put("sales", lxr.get("sales"));
-                        pageData.put("prescriptionNumber", Id);
-                        pageData.put("prescriptionDate", DateUtils.getTime());
-                        pageData.put("hospital", lxr.get("hospital"));
-                        pageData.put("prescribingDoctor", lxr.get("prescribingDoctor"));
-                        pageData.put("department", lxr.get("department"));
-                        pageData.put("attendingPhysician", lxr.get("attendingPhysician"));
-                        pageData.put("clinicalDiagnosis", lxr.get("clinicalDiagnosis"));
-                        pageData.put("registrant", lxr.get("registrant"));
-                        pageData.put("registrationDate", DateUtils.getTime());
+            try {
+                if (StringUtils.isNotNull(drugList)) {
+                    // 将 JSON 字符串转换为 List<Map<String, Object>>
+                    ObjectMapper objectMapper = new ObjectMapper();
+                    List<Map<String, Object>> rowsdrugList = objectMapper.readValue(drugList.toString(), List.class);
+                    drugQuantity = rowsdrugList.size();//处方取药数量
+                    // 遍历列表并调用插入数据接口
+                    if (rowsdrugList.size() > 0) {
+                        for (Map<String, Object> lxr : rowsdrugList) {
+                            PageData pageData = new PageData();
+
+                            // 设置固定或默认值
+                            pageData.put("createdBy", getSysUser().getLoginName());
+                            pageData.put("createdTime", DateUtils.getTime());
+                            pageData.put("storeId", getSysUser().getDeptId());
+
+                            // 从 lxr 获取数据并映射到数据库字段
+                            pageData.put("mdmCode", lxr.get("mdmCode"));
+                            pageData.put("productName", lxr.get("productName"));
+                            pageData.put("genericName", lxr.get("genericName"));
+                            pageData.put("specification", lxr.get("specification"));
+                            pageData.put("manufacturerShortName", lxr.get("manufacturerShortName"));
+                            pageData.put("administrationMethod", lxr.get("administrationMethod"));
+                            pageData.put("packageQuantity", lxr.get("packageQuantity"));//处方取药数量(包装数)输入框的值
+                            pageData.put("singleDoseValue", lxr.get("singleDoseValue"));//处方单次剂量数值 输入框的值
+                            pageData.put("singleDoseUnit", lxr.get("singleDoseUnit"));//处方单次剂量单位
+                            pageData.put("dosageFrequency", lxr.get("dosageFrequency"));//规范用药频次
+                            pageData.put("dosageFrequencyDays", lxr.get("dosageFrequencyDays"));//用药频次换算使用天数 下拉带出来的 要去字典的value
+                            pageData.put("dvalueDays", 1);//待计算
+
+
+                            // 添加其他可能需要的字段(如果有的话)
+                            pageData.put("medicationRoute", lxr.get("medicationRoute"));
+                            //pageData.put("sales", lxr.get("sales"));
+                            pageData.put("prescriptionNumber", Id);
+                            pageData.put("prescriptionDate", DateUtils.getTime());
+                            pageData.put("hospital", lxr.get("hospital"));
+                            pageData.put("prescribingDoctor", lxr.get("prescribingDoctor"));
+                            pageData.put("department", lxr.get("department"));
+                            pageData.put("attendingPhysician", lxr.get("attendingPhysician"));
+                            pageData.put("clinicalDiagnosis", lxr.get("clinicalDiagnosis"));
+                            pageData.put("registrant", lxr.get("registrant"));
+                            pageData.put("registrationDate", DateUtils.getTime());
 //                        pageData.put("saleDate", lxr.get("saleDate"));
 //                        pageData.put("pharmacyName", lxr.get("pharmacyName"));
 //                        pageData.put("updatedBy", lxr.get("updatedBy"));
 //                        pageData.put("updatedTime", lxr.get("updatedTime"));
 //                        pageData.put("remarks", lxr.get("remarks"));
-                        addList.add(pageData);
+                            addList.add(pageData);
+                            resultDrug = dao.executeBatch("DTPCFDJMapper.batchAddDrugPurchaseRecordNew", pageData);
+                        }
+//                        final HashMap<String, Object> addMap = new HashMap<String, Object>();
+//                        addMap.put("dataList", addList);
+//                        resultDrug = dao.executeBatch("DTPCFDJMapper.batchAddDrugPurchaseRecord", addMap);
                     }
-                    final HashMap<String, Object> addMap = new HashMap<String, Object>();
-                    addMap.put("dataList", addList);
-                    resultDrug= dao.executeBatch("DTPCFDJMapper.batchAddDrugPurchaseRecord", addMap);
                 }
 
+
+                // 从表单数据填充
+                pd.put("prescriptionNumber", Id); // 处方单表id主键,Id 应该是某个方式生成的唯一标识符
+                pd.put("storeId", getSysUser().getDeptId());
+                pd.put("storeName", getSysUser().getDeptId()); // 假设 getDeptName() 可以获取部门名称
+                pd.put("createdBy", getSysUser().getUserId());
+                pd.put("createTime", DateUtils.getTime());
+
+                // 直接从表单数据填充
+                pd.put("hospital", pd.get("hospital"));
+                pd.put("prescribingDoctor", pd.get("prescribingDoctor"));
+                pd.put("department", pd.get("department"));
+                pd.put("prescriptionDiagnosis", pd.get("prescriptionDiagnosis"));
+                pd.put("attendingDoctor", pd.get("attendingDoctor"));
+                pd.put("clinicalDiagnosis", pd.get("clinicalDiagnosis"));
+                pd.put("prescriptionImageUrl", pd.get("prescriptionImageUrl"));
+                pd.put("prescriptionIssueDate", pd.get("prescriptionIssueDate"));
+                pd.put("invoiceImageUrl", pd.get("invoiceImageUrl"));
+                pd.put("invoiceCode", pd.get("invoiceCode"));
+                pd.put("registrationDate", DateUtils.getTime());
+                pd.put("registerPharmacistName", pd.get("registerPharmacistName"));
+                pd.put("registrant", pd.get("registrant"));
+                pd.put("reviewingName", pd.get("reviewingName"));
+                pd.put("drugQuantity", drugQuantity);
+        pd.put("prescriptionType", pd.get("prescriptionType"));
+                // 患者信息
+                pd.put("patientId", pd.get("patientId"));
+                pd.put("patientName", pd.get("patientName"));
+                pd.put("gender", pd.get("gender"));
+                pd.put("age", pd.get("age"));
+                int result = daoSupport.save("DTPCFDJMapper.insertPrescriptionRegistration", pd);
+                if(resultDrug>0 && result>0){
+                    returnPageData.put("code", 200);
+                    returnPageData.put("prescriptionNumber", Id);
+                    return returnPageData;
+                }else {
+                    returnPageData.put("msg", "天添加败");
+                    returnPageData.put("code", 300);
+                    return returnPageData;
+                }
             } catch (Exception e) {
                 e.printStackTrace();
             }
-
-        }
-
-        System.out.println("当前用户信息getUserId:" + getSysUser().getUserId());
-        System.out.println("当前用户信息getDeptId:" + getSysUser().getDeptId());
-        // 从表单数据填充
-        pd.put("prescriptionNumber", Id); // 处方单表id主键,Id 应该是某个方式生成的唯一标识符
-        pd.put("storeId", getSysUser().getDeptId());
-        pd.put("storeName", getSysUser().getDeptId()); // 假设 getDeptName() 可以获取部门名称
-        pd.put("createdBy", getSysUser().getUserId());
-        pd.put("createTime", DateUtils.getTime());
-
-        // 直接从表单数据填充
-        pd.put("hospital", pd.get("hospital"));
-        pd.put("prescribingDoctor", pd.get("prescribingDoctor"));
-        pd.put("department", pd.get("department"));
-        pd.put("prescriptionDiagnosis", pd.get("prescriptionDiagnosis"));
-        pd.put("attendingDoctor", pd.get("attendingDoctor"));
-        pd.put("clinicalDiagnosis", pd.get("clinicalDiagnosis"));
-        pd.put("prescriptionImageUrl", pd.get("prescriptionImageUrl"));
-        pd.put("prescriptionIssueDate", pd.get("prescriptionIssueDate"));
-        pd.put("invoiceImageUrl", pd.get("invoiceImageUrl"));
-        pd.put("invoiceCode", pd.get("invoiceCode"));
-        pd.put("registrationDate", DateUtils.getTime());
-        pd.put("registerPharmacistName", pd.get("registerPharmacistName"));
-        pd.put("registrant", pd.get("registrant"));
-        pd.put("reviewingName", pd.get("reviewingName"));
-        pd.put("drugQuantity", drugQuantity);
-        pd.put("prescriptionType", pd.get("prescriptionType"));
-        // 患者信息
-        pd.put("patientId", pd.get("patientId"));
-        pd.put("patientName", pd.get("patientName"));
-        pd.put("gender", pd.get("gender"));
-        pd.put("age", pd.get("age"));
-        int result = daoSupport.save("DTPCFDJMapper.insertPrescriptionRegistration", pd);
-        if(resultDrug>0 && result>0){
-            returnPageData.put("code", 200);
-            returnPageData.put("prescriptionNumber", Id);
-            return returnPageData;
-        }else {
-            returnPageData.put("msg", "天添加败");
-            returnPageData.put("code", 300);
-            return returnPageData;
-        }
+            return null;
     }
 
     /**
@@ -356,7 +356,8 @@ public class DTPService {
      * @throws Exception
      */
     public Integer del(List<String> ids) throws Exception {
-        return daoSupport.delete("DTPMapper.deleteRecipe", ids);
+        daoSupport.delete("DTPMapper.deleteRecipe", ids);
+        return daoSupport.delete("DTPMapper.deleteRecipeReg", ids);
     }
     /**
      * 一店一目删除

+ 112 - 37
health-system/src/main/resources/mapper/mdyy/DTPCFDJMapper.xml

@@ -512,43 +512,44 @@
 
 
     <insert id="batchAddDrugPurchaseRecord" parameterType="java.util.List">
-        INSERT INTO s_dtp_drug_purchase_record
-        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
-            <if test="dataList[0].mdmCode != null and dataList[0].mdmCode != ''">mdmCode,</if>
-            <if test="dataList[0].productName != null and dataList[0].productName != ''">productName,</if>
-            <if test="dataList[0].genericName != null and dataList[0].genericName != ''">genericName,</if>
-            <if test="dataList[0].specification != null and dataList[0].specification != ''">specification,</if>
-            <if test="dataList[0].manufacturerShortName != null and dataList[0].manufacturerShortName != ''">manufacturerShortName,</if>
-            <if test="dataList[0].administrationMethod != null and dataList[0].administrationMethod != ''">administrationMethod,</if>
-            <if test="dataList[0].packageQuantity != null">packageQuantity,</if>
-            <if test="dataList[0].singleDoseValue != null">singleDoseValue,</if>
-            <if test="dataList[0].singleDoseUnit != null and dataList[0].singleDoseUnit != ''">singleDoseUnit,</if>
-            <if test="dataList[0].dosageFrequency != null and dataList[0].dosageFrequency != ''">dosageFrequency,</if>
-            <if test="dataList[0].dosageFrequencyDays != null">dosageFrequencyDays,</if>
-            <if test="dataList[0].dvalueDays != null and  dataList[0].dvalueDays != ''">dvalueDays,</if>
-            <if test="dataList[0].medicationRoute != null and dataList[0].medicationRoute != ''">medicationRoute,</if>
-            <if test="dataList[0].sales != null and dataList[0].sales != ''">sales,</if>
-            <if test="dataList[0].prescriptionNumber != null and dataList[0].prescriptionNumber != ''">prescriptionNumber,</if>
-            <if test="dataList[0].prescriptionDate != null">prescriptionDate,</if>
-            <if test="dataList[0].hospital != null and dataList[0].hospital != ''">hospital,</if>
-            <if test="dataList[0].prescribingDoctor != null and dataList[0].prescribingDoctor != ''">prescribingDoctor,</if>
-            <if test="dataList[0].department != null and dataList[0].department != ''">department,</if>
-            <if test="dataList[0].attendingPhysician != null and dataList[0].attendingPhysician != ''">attendingPhysician,</if>
-            <if test="dataList[0].clinicalDiagnosis != null and dataList[0].clinicalDiagnosis != ''">clinicalDiagnosis,</if>
-            <if test="dataList[0].registrant != null and dataList[0].registrant != ''">registrant,</if>
-            <if test="dataList[0].registrationDate != null">registrationDate,</if>
-            <if test="dataList[0].saleDate != null">saleDate,</if>
-            <if test="dataList[0].pharmacyName != null and dataList[0].pharmacyName != ''">pharmacyName,</if>
-            <if test="dataList[0].storeId != null">storeId,</if>
-            <if test="dataList[0].createdBy != null and dataList[0].createdBy != ''">createdBy,</if>
-            <if test="dataList[0].createdTime != null">createdTime,</if>
-            <if test="dataList[0].updatedBy != null and dataList[0].updatedBy != ''">updatedBy,</if>
-            <if test="dataList[0].updatedTime != null">updatedTime,</if>
-            <if test="dataList[0].remarks != null and dataList[0].remarks != ''">remarks</if>
-        </trim>
-        VALUES
-        <foreach item="item" index="index" collection="dataList" separator=",">
-            <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <foreach collection="dataList" item="item" index="index">
+            INSERT INTO s_dtp_drug_purchase_record (
+            <trim prefix="" suffix="" prefixOverrides="," suffixOverrides=",">
+                <if test="item.mdmCode != null and item.mdmCode != ''">mdmCode,</if>
+                <if test="item.productName != null and item.productName != ''">productName,</if>
+                <if test="item.genericName != null and item.genericName != ''">genericName,</if>
+                <if test="item.specification != null and item.specification != ''">specification,</if>
+                <if test="item.manufacturerShortName != null and item.manufacturerShortName != ''">manufacturerShortName,</if>
+                <if test="item.administrationMethod != null and item.administrationMethod != ''">administrationMethod,</if>
+                <if test="item.packageQuantity != null">packageQuantity,</if>
+                <if test="item.singleDoseValue != null">singleDoseValue,</if>
+                <if test="item.singleDoseUnit != null and item.singleDoseUnit != ''">singleDoseUnit,</if>
+                <if test="item.dosageFrequency != null and item.dosageFrequency != ''">dosageFrequency,</if>
+                <if test="item.dosageFrequencyDays != null">dosageFrequencyDays,</if>
+                <if test="item.dvalueDays != null and  item.dvalueDays != ''">dvalueDays,</if>
+                <if test="item.medicationRoute != null and item.medicationRoute != ''">medicationRoute,</if>
+                <if test="item.sales != null and item.sales != ''">sales,</if>
+                <if test="item.prescriptionNumber != null and item.prescriptionNumber != ''">prescriptionNumber,</if>
+                <if test="item.prescriptionDate != null">prescriptionDate,</if>
+                <if test="item.hospital != null and item.hospital != ''">hospital,</if>
+                <if test="item.prescribingDoctor != null and item.prescribingDoctor != ''">prescribingDoctor,</if>
+                <if test="item.department != null and item.department != ''">department,</if>
+                <if test="item.attendingPhysician != null and item.attendingPhysician != ''">attendingPhysician,</if>
+                <if test="item.clinicalDiagnosis != null and item.clinicalDiagnosis != ''">clinicalDiagnosis,</if>
+                <if test="item.registrant != null and item.registrant != ''">registrant,</if>
+                <if test="item.registrationDate != null">registrationDate,</if>
+                <if test="item.saleDate != null">saleDate,</if>
+                <if test="item.pharmacyName != null and item.pharmacyName != ''">pharmacyName,</if>
+                <if test="item.storeId != null">storeId,</if>
+                <if test="item.createdBy != null and item.createdBy != ''">createdBy,</if>
+                <if test="item.createdTime != null">createdTime,</if>
+                <if test="item.updatedBy != null and item.updatedBy != ''">updatedBy,</if>
+                <if test="item.updatedTime != null">updatedTime,</if>
+                <if test="item.remarks != null and item.remarks != ''">remarks</if>
+            </trim>
+            )
+            VALUES (
+            <trim prefix="" suffix="" prefixOverrides="," suffixOverrides=",">
                 <if test="item.mdmCode != null and item.mdmCode != ''">#{item.mdmCode},</if>
                 <if test="item.productName != null and item.productName != ''">#{item.productName},</if>
                 <if test="item.genericName != null and item.genericName != ''">#{item.genericName},</if>
@@ -581,6 +582,7 @@
                 <if test="item.updatedTime != null">#{item.updatedTime},</if>
                 <if test="item.remarks != null and item.remarks != ''">#{item.remarks}</if>
             </trim>
+            )
         </foreach>
     </insert>
 
@@ -617,4 +619,77 @@
             where prescriptionNumber = #{prescriptionNumber}
         </if>
     </update>
+
+    <insert id="batchAddDrugPurchaseRecordNew" parameterType="pd">
+        INSERT INTO s_dtp_drug_purchase_record (
+        <trim prefix="" suffix="" prefixOverrides="," suffixOverrides=",">
+            <if test="mdmCode != null or mdmCode != ''">mdmCode,</if>
+            <if test="productName != null or productName != ''">productName,</if>
+            <if test="genericName != null or genericName != ''">genericName,</if>
+            <if test="specification != null or specification != ''">specification,</if>
+            <if test="manufacturerShortName != null or manufacturerShortName != ''">manufacturerShortName,</if>
+            <if test="administrationMethod != null or administrationMethod != ''">administrationMethod,</if>
+            <if test="packageQuantity != null">packageQuantity,</if>
+            <if test="singleDoseValue != null">singleDoseValue,</if>
+            <if test="singleDoseUnit != null or singleDoseUnit != ''">singleDoseUnit,</if>
+            <if test="dosageFrequency != null or dosageFrequency != ''">dosageFrequency,</if>
+            <if test="dosageFrequencyDays != null">dosageFrequencyDays,</if>
+            <if test="dvalueDays != null or  dvalueDays != ''">dvalueDays,</if>
+            <if test="medicationRoute != null or medicationRoute != ''">medicationRoute,</if>
+            <if test="sales != null or sales != ''">sales,</if>
+            <if test="prescriptionNumber != null or prescriptionNumber != ''">prescriptionNumber,</if>
+            <if test="prescriptionDate != null">prescriptionDate,</if>
+            <if test="hospital != null or hospital != ''">hospital,</if>
+            <if test="prescribingDoctor != null or prescribingDoctor != ''">prescribingDoctor,</if>
+            <if test="department != null or department != ''">department,</if>
+            <if test="attendingPhysician != null or attendingPhysician != ''">attendingPhysician,</if>
+            <if test="clinicalDiagnosis != null or clinicalDiagnosis != ''">clinicalDiagnosis,</if>
+            <if test="registrant != null or registrant != ''">registrant,</if>
+            <if test="registrationDate != null">registrationDate,</if>
+            <if test="saleDate != null">saleDate,</if>
+            <if test="pharmacyName != null or pharmacyName != ''">pharmacyName,</if>
+            <if test="storeId != null">storeId,</if>
+            <if test="createdBy != null or createdBy != ''">createdBy,</if>
+            <if test="createdTime != null">createdTime,</if>
+            <if test="updatedBy != null or updatedBy != ''">updatedBy,</if>
+            <if test="updatedTime != null">updatedTime,</if>
+            <if test="remarks != null or remarks != ''">remarks</if>
+        </trim>
+        )
+        VALUES (
+        <trim prefix="" suffix="" prefixOverrides="," suffixOverrides=",">
+            <if test="mdmCode != null or mdmCode != ''">#{mdmCode},</if>
+            <if test="productName != null or productName != ''">#{productName},</if>
+            <if test="genericName != null or genericName != ''">#{genericName},</if>
+            <if test="specification != null or specification != ''">#{specification},</if>
+            <if test="manufacturerShortName != null or manufacturerShortName != ''">#{manufacturerShortName},</if>
+            <if test="administrationMethod != null or administrationMethod != ''">#{administrationMethod},</if>
+            <if test="packageQuantity != null">#{packageQuantity},</if>
+            <if test="singleDoseValue != null">#{singleDoseValue},</if>
+            <if test="singleDoseUnit != null or singleDoseUnit != ''">#{singleDoseUnit},</if>
+            <if test="dosageFrequency != null or dosageFrequency != ''">#{dosageFrequency},</if>
+            <if test="dosageFrequencyDays != null">#{dosageFrequencyDays},</if>
+            <if test="dvalueDays != null or  dvalueDays != ''">#{dvalueDays},</if>
+            <if test="medicationRoute != null or medicationRoute != ''">#{medicationRoute},</if>
+            <if test="sales != null or sales != ''">#{sales},</if>
+            <if test="prescriptionNumber != null or prescriptionNumber != ''">#{prescriptionNumber},</if>
+            <if test="prescriptionDate != null">#{prescriptionDate},</if>
+            <if test="hospital != null or hospital != ''">#{hospital},</if>
+            <if test="prescribingDoctor != null or prescribingDoctor != ''">#{prescribingDoctor},</if>
+            <if test="department != null or department != ''">#{department},</if>
+            <if test="attendingPhysician != null or attendingPhysician != ''">#{attendingPhysician},</if>
+            <if test="clinicalDiagnosis != null or clinicalDiagnosis != ''">#{clinicalDiagnosis},</if>
+            <if test="registrant != null or registrant != ''">#{registrant},</if>
+            <if test="registrationDate != null">#{registrationDate},</if>
+            <if test="saleDate != null">#{saleDate},</if>
+            <if test="pharmacyName != null or pharmacyName != ''">#{pharmacyName},</if>
+            <if test="storeId != null">#{storeId},</if>
+            <if test="createdBy != null or createdBy != ''">#{createdBy},</if>
+            <if test="createdTime != null">#{createdTime},</if>
+            <if test="updatedBy != null or updatedBy != ''">#{updatedBy},</if>
+            <if test="updatedTime != null">#{updatedTime},</if>
+            <if test="remarks != null or remarks != ''">#{remarks}</if>
+        </trim>
+        )
+    </insert>
 </mapper>

+ 11 - 2
health-system/src/main/resources/mapper/system/DTPMapper.xml

@@ -147,15 +147,24 @@
         </trim>
     </insert>
 
-    <delete id="deleteRecipe" parameterType="java.util.List">
+    <delete id="deleteRecipeReg" parameterType="java.util.List">
         <if test="list != null and list.size() > 0">
-            delete from s_dtp_cfdj_prescription
+            delete from s_dtp_prescription_registration
             where id in
             <foreach item="id" index="index" collection="list" open="(" separator="," close=")">
                 #{id}
             </foreach>
         </if>
     </delete>
+    <delete id="deleteRecipe" parameterType="java.util.List">
+        <if test="list != null and list.size() > 0">
+            delete from s_dtp_drug_purchase_record
+            where prescriptionNumber in
+            <foreach item="id" index="index" collection="list" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+    </delete>
     <update id="BangdingRecipe" parameterType="pd">
     update s_dtp_cfdj_prescription
         <set>