wangshuangpan 2 месяцев назад
Родитель
Сommit
ab6ae84598

+ 5 - 4
health-admin/src/main/resources/templates/dtp/archives/archivesAdd.html

@@ -283,10 +283,11 @@
                     $.modal.msgWarning("请输入身份证号码")
                     return false
                 }
-                if (validateIDCard2(IDCard)===false) {
-                    $.modal.msgWarning("身份证号码不正确,请重新输入!")
-                    return false
-                }
+                // if (validateIDCard2(IDCard)===false) {
+                //     $.modal.msgWarning("身份证号码不正确,请重新输入!")
+                //     return false
+                // }
+                // 为了测试用 后面再加上 先注释掉 方便测试
             }
             var gender= $("#gender").val()
             if (gender==null || gender==="" || gender===undefined) {

+ 237 - 266
health-admin/src/main/resources/templates/spgl/SPProductAdd.html

@@ -31,16 +31,12 @@
                 </li>
                 <li class=""><a data-toggle="tab" href="#tab-7" aria-expanded="false">图片属性</a>
                 </li>
-                <!-- 下面再看 先把上面的弄完-->
                 <li class=""><a data-toggle="tab" href="#tab-8" aria-expanded="false">处方属性</a>
                 </li>
-<!--                <li class=""><a data-toggle="tab" href="#tab-9" aria-expanded="false">D值配置属性</a>-->
-<!--                </li>-->
                 <li class=""><a data-toggle="tab" href="#tab-10" aria-expanded="false">说明书属性</a>
                 </li>
                 <li class=""><a data-toggle="tab" href="#tab-11" aria-expanded="false">知识库属性</a>
                 </li>
-
             </ul>
             <div class="tab-content">
                 <!-- 基本信息 -->
@@ -60,6 +56,57 @@
                             <span class="span_line" readonly></span>
                         </div>
 
+                        <!-- 通用名 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">通用名:</label>
+                            <input type="text" name="generic_name" id="generic_name" class="styled-input edit_inputs" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 包装 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">包装:</label>
+                            <input type="text" name="packaging" class="styled-input edit_inputs" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 生产厂家 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">生产厂家:</label>
+                            <input type="text" name="manufacturer" class="styled-input edit_inputs" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 商品状态 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">商品状态:</label>
+                            <select name="product_status" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_product_status')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 商品大类 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">商品大类:</label>
+                            <select name="category_maj" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_category_maj')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 商品子类 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">商品子类:</label>
+                            <select name="category_min" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_category_min')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
                         <!-- 助记码 -->
                         <div class="customize-form-group edit">
                             <label>助记码:</label>
@@ -74,13 +121,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 通用名 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">通用名:</label>
-                            <input type="text" name="generic_name" id="generic_name" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 通用名助记码 -->
                         <div class="customize-form-group edit">
                             <label>通用名助记码:</label>
@@ -109,19 +149,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 规格 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">规格:</label>
-                            <input type="text" name="specification" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-                        <!-- 包装 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">包装:</label>
-                            <input type="text" name="packaging" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 国际条形码 (EAN-13) -->
                         <div class="customize-form-group edit">
                             <label>国际条形码 (EAN-13):</label>
@@ -129,13 +156,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 生产厂家 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">生产厂家:</label>
-                            <input type="text" name="manufacturer" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 委托厂家 -->
                         <div class="customize-form-group edit">
                             <label>委托厂家:</label>
@@ -157,20 +177,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 商品大类 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">商品大类:</label>
-                            <input type="text" name="category_maj" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <!-- 商品子类 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">商品子类:</label>
-                            <input type="text" name="category_min" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 商品类型 -->
                         <div class="customize-form-group edit">
                             <label>商品类型:</label>
@@ -178,13 +184,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 商品状态 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">商品状态:</label>
-                            <input type="text" name="product_status" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 进项税率 -->
                         <div class="customize-form-group edit">
                             <label>进项税率:</label>
@@ -368,7 +367,10 @@
                         <!-- 医保市场状态 -->
                         <div class="customize-form-group edit">
                             <label>医保市场状态:</label>
-                            <input type="text" name="medical_market_status" class="styled-input edit_inputs"  />
+                            <select name="medical_market_status" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_medical_market_status')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
+                            </select>
                             <span class="span_line" readonly></span>
                         </div>
 
@@ -418,27 +420,14 @@
                 <!-- dtp -->
                 <div id="tab-12" class="tab-pane">
                     <form class="customize-search-form" id="form-server-edit12" >
+                        <!-- 规格 -->
                         <div class="customize-form-group edit">
-                            <label>是否医保药品:</label>
-                            <select name="is_insurance_drug" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
-                                <option value="">请选择</option>
-                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
-                            </select>
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <div class="customize-form-group edit">
-                            <label>医保类别:</label>
-                            <input type="text" name="insurance_category" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <div class="customize-form-group edit">
-                            <label>限购数量:</label>
-                            <input type="number" name="purchase_limit_quantity" class="styled-input edit_inputs" />
+                            <label class="is-required">规格:</label>
+                            <input type="text" name="specification" class="styled-input edit_inputs" />
                             <span class="span_line" readonly></span>
                         </div>
 
+                        <!-- 是否凭处方销售 -->
                         <div class="customize-form-group edit">
                             <label class="is-required">是否凭处方销售:</label>
                             <select name="prescription_required" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}" required>
@@ -448,27 +437,7 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <div class="customize-form-group edit">
-                            <label>禁止请货:</label>
-                            <select name="prohibit_ordering" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
-                                <option value="">请选择</option>
-                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
-                            </select>
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <div class="customize-form-group edit">
-                            <label>中包装请货逻辑:</label>
-                            <textarea name="mid_pack_order_logic" class="styled-input edit_inputs"></textarea>
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <div class="customize-form-group edit">
-                            <label>请货最大上限:</label>
-                            <input type="number" name="max_order_limit" class="styled-input edit_inputs" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
+                        <!-- 登记品 -->
                         <div class="customize-form-group edit">
                             <label class="is-required">登记品:</label>
                             <select name="registered_item" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}" required>
@@ -478,6 +447,7 @@
                             <span class="span_line" readonly></span>
                         </div>
 
+                        <!-- 随访品 -->
                         <div class="customize-form-group edit">
                             <label class="is-required">随访品:</label>
                             <select name="follow_up_item" id="follow_up_item" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}" required>
@@ -487,6 +457,7 @@
                             <span class="span_line" readonly></span>
                         </div>
 
+                        <!-- 冷链品 -->
                         <div class="customize-form-group edit">
                             <label class="is-required">冷链品:</label>
                             <select name="cold_chain_item" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}" required>
@@ -496,6 +467,7 @@
                             <span class="span_line" readonly></span>
                         </div>
 
+                        <!-- 流向品 -->
                         <div class="customize-form-group edit">
                             <label class="is-required">流向品:</label>
                             <select name="flow_item" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}" required>
@@ -505,15 +477,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <div class="customize-form-group edit">
-                            <label>慈善援助品:</label>
-                            <select name="charity_aid_item" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
-                                <option value="">请选择</option>
-                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
-                            </select>
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <div class="form-grid1">
                             <div class="form-field-left">
                                 <label class="is-required">最大剂量数量:</label>
@@ -556,7 +519,7 @@
                                 <input type="number" name="packing_value"  placeholder="购药包装单位数值" class="styled-input1" required />
                             </div>
                             <div class="form-field-right">
-                                <label>包装单位:</label>
+                                <label class="is-required">包装单位:</label>
                                 <select name="packing_unit" class="styled-input1" placeholder="包装单位"  th:with="type=${@dict.getType('sys_gxhpz_gg_unitall')}" required>
                                     <option value="">请选择</option>
                                     <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
@@ -564,7 +527,56 @@
                             </div>
                         </div>
 
+                        <div class="customize-form-group edit">
+                            <label>是否医保药品:</label>
+                            <select name="is_insurance_drug" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <div class="customize-form-group edit">
+                            <label>医保类别:</label>
+                            <input type="text" name="insurance_category" class="styled-input edit_inputs" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <div class="customize-form-group edit">
+                            <label>限购数量:</label>
+                            <input type="number" name="purchase_limit_quantity" class="styled-input edit_inputs" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <div class="customize-form-group edit">
+                            <label>禁止请货:</label>
+                            <select name="prohibit_ordering" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
 
+                        <div class="customize-form-group edit">
+                            <label>中包装请货逻辑:</label>
+                            <textarea name="mid_pack_order_logic" class="styled-input edit_inputs"></textarea>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <div class="customize-form-group edit">
+                            <label>请货最大上限:</label>
+                            <input type="number" name="max_order_limit" class="styled-input edit_inputs" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <div class="customize-form-group edit">
+                            <label>慈善援助品:</label>
+                            <select name="charity_aid_item" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
                     </form>
                 </div>
                 <!-- 采购属性 -->
@@ -572,7 +584,7 @@
                     <form class="customize-search-form" id="form-server-edit2" >
                         <!-- 参考进价 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">参考进价:</label>
+                            <label>参考进价:</label>
                             <input type="text" name="reference_purchase_price" class="styled-input edit_inputs" />
                             <span class="span_line" readonly></span>
                         </div>
@@ -825,7 +837,7 @@
 
                         <!-- 国谈价格 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">国谈价格:</label>
+                            <label>国谈价格:</label>
                             <input type="text" name="national_negotiated_price" class="styled-input edit_inputs" />
                             <span class="span_line" readonly></span>
                         </div>
@@ -897,7 +909,7 @@
                     <form class="customize-search-form" id="form-server-edit3" >
                         <!-- 存储分类 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">存储分类:</label>
+                            <label>存储分类:</label>
                             <input type="text" name="storage_category" class="styled-input edit_inputs" />
                             <span class="span_line" readonly></span>
                         </div>
@@ -1035,7 +1047,7 @@
 
                         <!-- 批准文号1 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">批准文号1:</label>
+                            <label>批准文号1:</label>
                             <input type="text" name="approval_number_1" class="styled-input edit_inputs" />
                             <span class="span_line" readonly></span>
                         </div>
@@ -1301,7 +1313,7 @@
                     <form class="customize-search-form" id="form-server-edit5" >
                         <!-- 参考零售价 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">参考零售价:</label>
+                            <label>参考零售价:</label>
                             <input type="text" name="reference_retail_price" class="styled-input edit_inputs" />
                             <span class="span_line" readonly></span>
                         </div>
@@ -1482,7 +1494,7 @@
                     <form class="customize-search-form" id="form-server-edit6" >
                         <!-- 平台属性 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">平台属性:</label>
+                            <label>平台属性:</label>
                             <input type="text" name="platform_property" class="styled-input edit_inputs" />
                             <span class="span_line" readonly></span>
                         </div>
@@ -1516,6 +1528,18 @@
                         </div>
                     </div>
                 </div>
+                <!-- 处方属性 -->
+                <div id="tab-8" class="tab-pane">
+                    <!-- 处方属性内容 -->
+                </div>
+                <!-- 说明书属性 -->
+                <div id="tab-10" class="tab-pane">
+                    <!-- 说明书属性内容 -->
+                </div>
+                <!-- 知识库属性 -->
+                <div id="tab-11" class="tab-pane">
+                    <!-- 知识库属性内容 -->
+                </div>
             </div>
         </div>
     </div>
@@ -1618,241 +1642,185 @@
             $("#form-server-edit6"),
             $("#form-server-edit12")
         ];
-      var flag = true;
+        var flag = true;
+
         // 获取 product_code 并验证是否已填写
         var productCodeData = $("#form-server-edit1").serializeArray().find(item => item.name === 'product_code');
-        if (productCodeData.value === '') {
+        if (!productCodeData || productCodeData.value === '') {
             $.modal.alertWarning("请先填写【基本属性】产品编码!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('product_code', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('product_code', 5000);
+            flag = false;
             return flag;
         }
+
         var product_name = $("#form-server-edit1").serializeArray().find(item => item.name === 'product_name');
-        if (product_name.value === '') {
+        if (!product_name || product_name.value === '') {
             $.modal.alertWarning("请先填写【基本属性】商品名称!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('product_name', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('product_name', 5000);
+            flag = false;
             return flag;
         }
-        var manufacturer = $("#form-server-edit1").serializeArray().find(item => item.name === 'generic_name');
-        if (manufacturer.value === '') {
+
+        var generic_name = $("#form-server-edit1").serializeArray().find(item => item.name === 'generic_name');
+        if (!generic_name || generic_name.value === '') {
             $.modal.alertWarning("请先填写【基本属性】通用名!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('generic_name', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('generic_name', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var packaging = $("#form-server-edit1").serializeArray().find(item => item.name === 'packaging');
+        if (!packaging || packaging.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】包装!");
+            keepFocusOnInput('packaging', 5000);
+            flag = false;
             return flag;
         }
+
         var manufacturer = $("#form-server-edit1").serializeArray().find(item => item.name === 'manufacturer');
-        if (manufacturer.value === '') {
+        if (!manufacturer || manufacturer.value === '') {
             $.modal.alertWarning("请先填写【基本属性】生产厂家!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('manufacturer', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('manufacturer', 5000);
+            flag = false;
             return flag;
         }
 
-
         var product_status = $("#form-server-edit1").serializeArray().find(item => item.name === 'product_status');
-        if (product_status.value === '') {
+        if (!product_status || product_status.value === '') {
             $.modal.alertWarning("请先填写【基本属性】商品状态!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('product_status', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('product_status', 5000);
+            flag = false;
             return flag;
         }
+
         var category_maj = $("#form-server-edit1").serializeArray().find(item => item.name === 'category_maj');
-        if (category_maj.value === '') {
+        if (!category_maj || category_maj.value === '') {
             $.modal.alertWarning("请先填写【基本属性】商品大类!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('category_maj', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('category_maj', 5000);
+            flag = false;
             return flag;
         }
+
         var category_min = $("#form-server-edit1").serializeArray().find(item => item.name === 'category_min');
-        if (category_min.value === '') {
-            $.modal.alertWarning("请先填写【基本属性】商品小类!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('category_min', 5000); // 保持焦点 5 秒钟
-            flag= false;
+        if (!category_min || category_min.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】商品子类!");
+            keepFocusOnInput('category_min', 5000);
+            flag = false;
             return flag;
         }
-        var specification = $("#form-server-edit1").serializeArray().find(item => item.name === 'specification');
-        if (specification.value === '') {
-            $.modal.alertWarning("请先填写【基本属性】规格!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('specification', 5000); // 保持焦点 5 秒钟
-            flag= false;
-            return flag;
-        }
-        var packaging = $("#form-server-edit1").serializeArray().find(item => item.name === 'packaging');
-        if (packaging.value === '') {
-            $.modal.alertWarning("请先填【基本属性】写包装!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('packaging', 5000); // 保持焦点 5 秒钟
-            flag= false;
+
+        // D值配置属性验证
+        var specification = $("#form-server-edit12").serializeArray().find(item => item.name === 'specification');
+        if (!specification || specification.value === '') {
+            $.modal.alertWarning("请先填写【D值配置属性】规格!");
+            keepFocusOnInput('specification', 5000);
+            flag = false;
             return flag;
         }
+
         var follow_up_item = $("#form-server-edit12").serializeArray().find(item => item.name === 'follow_up_item');
-        if (follow_up_item.value === '') {
-            $.modal.alertWarning("请选择是【D值配置属性】否随访品!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('follow_up_item', 5000); // 保持焦点 5 秒钟
-            flag= false;
+        if (!follow_up_item || follow_up_item.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】是否随访品!");
+            keepFocusOnInput('follow_up_item', 5000);
+            flag = false;
             return flag;
         }
 
         var cold_chain_item = $("#form-server-edit12").serializeArray().find(item => item.name === 'cold_chain_item');
-        if (cold_chain_item.value === '') {
+        if (!cold_chain_item || cold_chain_item.value === '') {
             $.modal.alertWarning("请选择【D值配置属性】是否冷链品!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('cold_chain_item', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('cold_chain_item', 5000);
+            flag = false;
             return flag;
         }
 
         var registered_item = $("#form-server-edit12").serializeArray().find(item => item.name === 'registered_item');
-        if (registered_item.value === '') {
+        if (!registered_item || registered_item.value === '') {
             $.modal.alertWarning("请选择【D值配置属性】是否登记品!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('registered_item', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('registered_item', 5000);
+            flag = false;
             return flag;
         }
 
         var flow_item = $("#form-server-edit12").serializeArray().find(item => item.name === 'flow_item');
-        if (flow_item.value === '') {
+        if (!flow_item || flow_item.value === '') {
             $.modal.alertWarning("请选择【D值配置属性】是否流向品!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('flow_item', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('flow_item', 5000);
+            flag = false;
             return flag;
         }
 
         var prescription_required = $("#form-server-edit12").serializeArray().find(item => item.name === 'prescription_required');
-        if (prescription_required.value === '') {
-            $.modal.alertWarning("请选择【D值配置属性】是否是否凭处方销售!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('prescription_required', 5000); // 保持焦点 5 秒钟
-            flag= false;
+        if (!prescription_required || prescription_required.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】是否凭处方销售!");
+            keepFocusOnInput('prescription_required', 5000);
+            flag = false;
             return flag;
         }
 
         var dosage_max = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_max');
-        if (dosage_max.value === '') {
-            $.modal.alertWarning("请选择【D值配置属性】最大剂量数量!");
-            flag= false;
+        if (!dosage_max || dosage_max.value === '') {
+            $.modal.alertWarning("请填写【D值配置属性】最大剂量数量!");
+            flag = false;
             return flag;
         }
+
         var dosage_min = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_min');
-        if (dosage_min.value === '') {
-            $.modal.alertWarning("请选择【D值配置属性】最小剂量数量!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('dosage_min', 5000); // 保持焦点 5 秒钟
-            flag= false;
+        if (!dosage_min || dosage_min.value === '') {
+            $.modal.alertWarning("请填写【D值配置属性】最小剂量数量!");
+            keepFocusOnInput('dosage_min', 5000);
+            flag = false;
             return flag;
         }
+
         var unit_max = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_max');
-        if (unit_max.value === '') {
+        if (!unit_max || unit_max.value === '') {
             $.modal.alertWarning("请选择【D值配置属性】最大剂量单位!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('unit_max', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('unit_max', 5000);
+            flag = false;
             return flag;
         }
+
         var unit_min = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_min');
-        if (unit_min.value === '') {
+        if (!unit_min || unit_min.value === '') {
             $.modal.alertWarning("请选择【D值配置属性】最小剂量单位!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('unit_min', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('unit_min', 5000);
+            flag = false;
             return flag;
         }
+
         var unit_normal = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_normal');
-        if (unit_normal.value === '') {
-            $.modal.alertWarning("请选择【D值配置属性】常见计量单位!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('unit_normal', 5000); // 保持焦点 5 秒钟
-            flag= false;
+        if (!unit_normal || unit_normal.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】常用剂量单位!");
+            keepFocusOnInput('unit_normal', 5000);
+            flag = false;
             return flag;
         }
+
         var dosage_normal = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_normal');
-        if (dosage_normal.value === '') {
-            $.modal.alertWarning("请选择【D值配置属性】常见计量数量!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('dosage_normal', 5000); // 保持焦点 5 秒钟
-            flag= false;
+        if (!dosage_normal || dosage_normal.value === '') {
+            $.modal.alertWarning("请填写【D值配置属性】常用剂量数量!");
+            keepFocusOnInput('dosage_normal', 5000);
+            flag = false;
             return flag;
         }
+
         var packing_value = $("#form-server-edit12").serializeArray().find(item => item.name === 'packing_value');
-        if (packing_value.value === '') {
-            $.modal.alertWarning("请选择【D值配置属性】包装单位值!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('packing_value', 5000); // 保持焦点 5 秒钟
-            flag= false;
+        if (!packing_value || packing_value.value === '') {
+            $.modal.alertWarning("请填写【D值配置属性】购药包装单位数值!");
+            keepFocusOnInput('packing_value', 5000);
+            flag = false;
             return flag;
         }
+
         var packing_unit = $("#form-server-edit12").serializeArray().find(item => item.name === 'packing_unit');
-        if (packing_unit.value === '') {
+        if (!packing_unit || packing_unit.value === '') {
             $.modal.alertWarning("请选择【D值配置属性】包装单位!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('packing_unit', 5000); // 保持焦点 5 秒钟
-            flag= false;
-            return flag;
-        }
-        var reference_purchase_price = $("#form-server-edit2").serializeArray().find(item => item.name === 'reference_purchase_price');
-        if (reference_purchase_price.value === '') {
-            $.modal.alertWarning("请先填写【采购属性】参考进价!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('reference_purchase_price', 5000); // 保持焦点 5 秒钟
-            flag= false;
-            return flag;
-        }
-        var national_negotiated_price = $("#form-server-edit2").serializeArray().find(item => item.name === 'national_negotiated_price');
-        if (national_negotiated_price.value === '') {
-            $.modal.alertWarning("请先填写【采购属性】国谈价格!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('national_negotiated_price', 5000); // 保持焦点 5 秒钟
-            flag= false;
-            return flag;
-        }
-        var storage_category = $("#form-server-edit3").serializeArray().find(item => item.name === 'storage_category');
-        if (storage_category.value === '') {
-            $.modal.alertWarning("请先填写【存储分类】存储分类!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('storage_category', 5000); // 保持焦点 5 秒钟
-            flag= false;
+            keepFocusOnInput('packing_unit', 5000);
+            flag = false;
             return flag;
         }
 
-        var approval_number_1 = $("#form-server-edit4").serializeArray().find(item => item.name === 'approval_number_1');
-        if (approval_number_1.value === '') {
-            $.modal.alertWarning("请先填写【质管属性】批准文号1!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('approval_number_1', 5000); // 保持焦点 5 秒钟
-            flag= false;
-            return flag;
-        }
-        var reference_retail_price = $("#form-server-edit5").serializeArray().find(item => item.name === 'reference_retail_price');
-        if (reference_retail_price.value === '') {
-            $.modal.alertWarning("请先填写【销售属性】参考零售价!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('reference_retail_price', 5000); // 保持焦点 5 秒钟
-            flag= false;
-            return flag;
-        }
-        var platform_property = $("#form-server-edit6").serializeArray().find(item => item.name === 'platform_property');
-        if (platform_property.value === '') {
-            $.modal.alertWarning("请先填写【业态属性】平台属性!");
-            // 调用函数设置焦点到必填项,并保持一段时间内的焦点
-            keepFocusOnInput('platform_property', 5000); // 保持焦点 5 秒钟
-            flag= false;
-            return flag;
-        }
-
-
-
         // 初始化合并后的数据数组
         var allData = [];
 
@@ -1860,16 +1828,19 @@
         forms.forEach(function(form) {
             var formData = $(form).serializeArray();
             // 确保 product_code 存在于每个表单数据中
-            formData.push({ name: 'product_code', value: productCodeData.value });
+            if (productCodeData && productCodeData.value) {
+                formData.push({ name: 'product_code', value: productCodeData.value });
+            }
             allData = allData.concat(formData);
         });
-        if (flag){
+
+        if (flag) {
             return allData;
-        }else{
+        } else {
             return false;
         }
-
     }
+
     function keepFocusOnInput(fieldName, duration = 5000) {
         var element = $('[name="' + fieldName + '"]');
         let intervalId;
@@ -1925,4 +1896,4 @@
             });
         }
     }
-</script>
+</script>

+ 352 - 224
health-admin/src/main/resources/templates/spgl/SPProductEdit.html

@@ -49,7 +49,7 @@
                         <!-- 商品编码 -->
                         <div class="customize-form-group edit">
                             <label class="is-required">商品编码:</label>
-                            <input type="text" name="product_code" class="styled-input edit_inputs" th:value="${product_code}" disabled/>
+                            <input type="text" name="product_code" class="styled-input edit_inputs" th:value="${product_code}" readonly/>
                             <span class="span_line" readonly></span>
                         </div>
 
@@ -60,6 +60,57 @@
                             <span class="span_line" readonly></span>
                         </div>
 
+                        <!-- 通用名 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">通用名:</label>
+                            <input type="text" name="generic_name" class="styled-input edit_inputs" th:value="${generic_name}" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 包装 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">包装:</label>
+                            <input type="text" name="packaging" class="styled-input edit_inputs" th:value="${packaging}" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 生产厂家 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">生产厂家:</label>
+                            <input type="text" name="manufacturer" class="styled-input edit_inputs" th:value="${manufacturer}" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 商品状态 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">商品状态:</label>
+                            <select name="product_status" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_product_status')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${product_status}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 商品大类 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">商品大类:</label>
+                            <select name="category_maj" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_category_maj')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${category_maj}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 商品子类 -->
+                        <div class="customize-form-group edit">
+                            <label class="is-required">商品子类:</label>
+                            <select name="category_min" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_category_min')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${category_min}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
                         <!-- 助记码 -->
                         <div class="customize-form-group edit">
                             <label>助记码:</label>
@@ -74,13 +125,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 通用名 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">通用名:</label>
-                            <input type="text" name="generic_name" class="styled-input edit_inputs" th:value="${generic_name}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 通用名助记码 -->
                         <div class="customize-form-group edit">
                             <label>通用名助记码:</label>
@@ -109,20 +153,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 规格 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">规格:</label>
-                            <input type="text" name="specification" class="styled-input edit_inputs" th:value="${specification}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <!-- 包装 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">包装:</label>
-                            <input type="text" name="packaging" class="styled-input edit_inputs" th:value="${packaging}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 国际条形码 (EAN-13) -->
                         <div class="customize-form-group edit">
                             <label>国际条形码 (EAN-13):</label>
@@ -130,13 +160,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 生产厂家 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">生产厂家:</label>
-                            <input type="text" name="manufacturer" class="styled-input edit_inputs" th:value="${manufacturer}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 委托厂家 -->
                         <div class="customize-form-group edit">
                             <label>委托厂家:</label>
@@ -158,20 +181,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 商品大类 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">商品大类:</label>
-                            <input type="text" name="category_maj" class="styled-input edit_inputs" th:value="${category_maj}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <!-- 商品子类 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">商品子类:</label>
-                            <input type="text" name="category_min" class="styled-input edit_inputs" th:value="${category_min}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 商品类型 -->
                         <div class="customize-form-group edit">
                             <label>商品类型:</label>
@@ -179,13 +188,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 商品状态 -->
-                        <div class="customize-form-group edit">
-                            <label class="is-required">商品状态:</label>
-                            <input type="text" name="product_status" class="styled-input edit_inputs" th:value="${product_status}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 进项税率 -->
                         <div class="customize-form-group edit">
                             <label>进项税率:</label>
@@ -203,7 +205,7 @@
                         <!-- 进口/国产商品 -->
                         <div class="customize-form-group edit">
                             <label>进口/国产商品:</label>
-                            <select name="import_export_status" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_select_yes_no')}" >
+                            <select name="import_export_status" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}" >
                                 <option value="">--  是(进口) / 否(国产)请选择  --</option>
                                 <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${import_export_status}" th:text="${dict.dictLabel}"></option>
                             </select>
@@ -248,7 +250,7 @@
                         <!-- DTP商品标识 -->
                         <div class="customize-form-group edit">
                             <label>DTP商品标识:</label>
-                            <select name="dtp_flag" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_select_yes_no')}" >
+                            <select name="dtp_flag" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}" >
                                 <option value="">请选择</option>
                                 <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${dtp_flag}" th:text="${dict.dictLabel}"></option>
                             </select>
@@ -370,7 +372,10 @@
                         <!-- 医保市场状态 -->
                         <div class="customize-form-group edit">
                             <label>医保市场状态:</label>
-                            <input type="text" name="medical_market_status" class="styled-input edit_inputs" th:value="${medical_market_status}" />
+                            <select name="medical_market_status" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_medical_market_status')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${medical_market_status}" th:text="${dict.dictLabel}"></option>
+                            </select>
                             <span class="span_line" readonly></span>
                         </div>
 
@@ -398,7 +403,7 @@
                         <!-- 是否医保通用名 -->
                         <div class="customize-form-group edit">
                             <label>是否医保通用名:</label>
-                            <select name="is_medical_generic_name" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_select_yes_no')}" >
+                            <select name="is_medical_generic_name" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}" >
                                 <option value="">请选择</option>
                                 <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${is_medical_generic_name}" th:text="${dict.dictLabel}"></option>
                             </select>
@@ -424,64 +429,23 @@
                 <!-- dtp -->
                 <div id="tab-12" class="tab-pane">
                     <form class="customize-search-form" id="form-server-edit12" >
-                        <!-- 是否医保药品 -->
-                        <div class="customize-form-group edit">
-                            <label>是否医保药品:</label>
-                            <select name="is_insurance_drug" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_select_yes_no')}">
-                                <option value="">请选择</option>
-                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${is_insurance_drug}" th:text="${dict.dictLabel}"></option>
-                            </select>
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <!-- 医保类别 -->
-                        <div class="customize-form-group edit">
-                            <label>医保类别:</label>
-                            <input type="text" name="insurance_category" class="styled-input edit_inputs" th:value="${insurance_category}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <!-- 限购数量 -->
+                        <!-- 规格 -->
                         <div class="customize-form-group edit">
-                            <label>限购数量:</label>
-                            <input type="number" name="purchase_limit_quantity" class="styled-input edit_inputs" th:value="${purchase_limit_quantity}" />
+                            <label class="is-required">规格:</label>
+                            <input type="text" name="specification" class="styled-input edit_inputs" th:value="${specification}" />
                             <span class="span_line" readonly></span>
                         </div>
 
                         <!-- 是否凭处方销售 -->
                         <div class="customize-form-group edit">
                             <label class="is-required">是否凭处方销售:</label>
-                            <select name="prescription_required" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_select_yes_no')}">
+                            <select name="prescription_required" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
                                 <option value="">请选择</option>
                                 <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${prescription_required}" th:text="${dict.dictLabel}"></option>
                             </select>
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 禁止请货 -->
-                        <div class="customize-form-group edit">
-                            <label>禁止请货:</label>
-                            <select name="prohibit_ordering" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_select_yes_no')}">
-                                <option value="">请选择</option>
-                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${prohibit_ordering}" th:text="${dict.dictLabel}"></option>
-                            </select>
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <!-- 中包装请货逻辑 -->
-                        <div class="customize-form-group edit">
-                            <label>中包装请货逻辑:</label>
-                            <textarea name="mid_pack_order_logic" class="styled-input edit_inputs" th:text="${mid_pack_order_logic}"></textarea>
-                            <span class="span_line" readonly></span>
-                        </div>
-
-                        <!-- 请货最大上限 -->
-                        <div class="customize-form-group edit">
-                            <label>请货最大上限:</label>
-                            <input type="number" name="max_order_limit" class="styled-input edit_inputs" th:value="${max_order_limit}" />
-                            <span class="span_line" readonly></span>
-                        </div>
-
                         <!-- 登记品 -->
                         <div class="customize-form-group edit">
                             <label class="is-required">登记品:</label>
@@ -522,15 +486,6 @@
                             <span class="span_line" readonly></span>
                         </div>
 
-                        <!-- 慈善援助品 -->
-                        <div class="customize-form-group edit">
-                            <label>慈善援助品:</label>
-                            <select name="charity_aid_item" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
-                                <option value="">请选择</option>
-                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${charity_aid_item}" th:text="${dict.dictLabel}"></option>
-                            </select>
-                            <span class="span_line" readonly></span>
-                        </div>
                         <div class="form-grid1">
                             <div class="form-field-left">
                                 <label class="is-required">最大剂量数量:</label>
@@ -545,12 +500,12 @@
                             </div>
 
                             <div class="form-field-left">
-                                <label>常用剂量数量:</label>
-                                <input type="number" name="dosage_normal"  placeholder="常用剂量数量" th:value="${dosage_normal}"   class="styled-input1" />
+                                <label class="is-required">常用剂量数量:</label>
+                                <input type="number" name="dosage_normal"  placeholder="常用剂量数量" th:value="${dosage_normal}"   class="styled-input1" required />
                             </div>
                             <div class="form-field-right">
-                                <label>常用剂量单位:</label>
-                                <select name="unit_normal" class="styled-input1"  placeholder="常用剂量单位" th:with="type=${@dict.getType('sys_gxhpz_gg_unitall')}">
+                                <label class="is-required">常用剂量单位:</label>
+                                <select name="unit_normal" class="styled-input1"  placeholder="常用剂量单位" th:with="type=${@dict.getType('sys_gxhpz_gg_unitall')}" required>
                                     <option value="">请选择</option>
                                     <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${unit_normal}" th:text="${dict.dictLabel}"></option>
                                 </select>
@@ -573,13 +528,71 @@
                                 <input type="number" name="packing_value"  placeholder="购药包装单位数值" th:value="${packing_value}"  class="styled-input1" required />
                             </div>
                             <div class="form-field-right">
-                                <label>包装单位:</label>
-                                <select name="packing_unit" class="styled-input1" placeholder="包装单位"  th:with="type=${@dict.getType('sys_gxhpz_gg_unitall')}">
+                                <label class="is-required">包装单位:</label>
+                                <select name="packing_unit" class="styled-input1" placeholder="包装单位"  th:with="type=${@dict.getType('sys_gxhpz_gg_unitall')}" required>
                                     <option value="">请选择</option>
                                     <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${packing_unit}" th:text="${dict.dictLabel}"></option>
                                 </select>
                             </div>
                         </div>
+
+                        <!-- 是否医保药品 -->
+                        <div class="customize-form-group edit">
+                            <label>是否医保药品:</label>
+                            <select name="is_insurance_drug" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${is_insurance_drug}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 医保类别 -->
+                        <div class="customize-form-group edit">
+                            <label>医保类别:</label>
+                            <input type="text" name="insurance_category" class="styled-input edit_inputs" th:value="${insurance_category}" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 限购数量 -->
+                        <div class="customize-form-group edit">
+                            <label>限购数量:</label>
+                            <input type="number" name="purchase_limit_quantity" class="styled-input edit_inputs" th:value="${purchase_limit_quantity}" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 禁止请货 -->
+                        <div class="customize-form-group edit">
+                            <label>禁止请货:</label>
+                            <select name="prohibit_ordering" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${prohibit_ordering}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 中包装请货逻辑 -->
+                        <div class="customize-form-group edit">
+                            <label>中包装请货逻辑:</label>
+                            <textarea name="mid_pack_order_logic" class="styled-input edit_inputs" th:text="${mid_pack_order_logic}"></textarea>
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 请货最大上限 -->
+                        <div class="customize-form-group edit">
+                            <label>请货最大上限:</label>
+                            <input type="number" name="max_order_limit" class="styled-input edit_inputs" th:value="${max_order_limit}" />
+                            <span class="span_line" readonly></span>
+                        </div>
+
+                        <!-- 慈善援助品 -->
+                        <div class="customize-form-group edit">
+                            <label>慈善援助品:</label>
+                            <select name="charity_aid_item" class="styled-input edit_inputs" th:with="type=${@dict.getType('sys_gxhpz_yes_no')}">
+                                <option value="">请选择</option>
+                                <option th:each="dict : ${type}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${charity_aid_item}" th:text="${dict.dictLabel}"></option>
+                            </select>
+                            <span class="span_line" readonly></span>
+                        </div>
                     </form>
                 </div>
                 <!-- 采购属性 -->
@@ -587,7 +600,7 @@
                     <form class="customize-search-form" id="form-server-edit2" >
                         <!-- 参考进价 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">参考进价:</label>
+                            <label>参考进价:</label>
                             <input type="text" name="reference_purchase_price" class="styled-input edit_inputs" th:value="${reference_purchase_price}" />
                             <span class="span_line" readonly></span>
                         </div>
@@ -839,8 +852,8 @@
 
                         <!-- 国谈价格 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">国谈价格:</label>
-                            <input type="text" name="national_negotiated_price" class="styled-input edit_inputs" th:value="${national_negotiated_price}" required />
+                            <label>国谈价格:</label>
+                            <input type="text" name="national_negotiated_price" class="styled-input edit_inputs" th:value="${national_negotiated_price}" />
                             <span class="span_line" readonly></span>
                         </div>
 
@@ -911,8 +924,8 @@
                     <form class="customize-search-form" id="form-server-edit3" >
                         <!-- 存储分类 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">存储分类:</label>
-                            <input type="text" name="storage_category" class="styled-input edit_inputs" th:value="${storage_category}" required />
+                            <label>存储分类:</label>
+                            <input type="text" name="storage_category" class="styled-input edit_inputs" th:value="${storage_category}" />
                             <span class="span_line" readonly></span>
                         </div>
 
@@ -1049,8 +1062,8 @@
 
                         <!-- 批准文号1 -->
                         <div class="customize-form-group edit">
-                            <label class="is-required">批准文号1:</label>
-                            <input type="text" name="approval_number_1" class="styled-input edit_inputs" th:value="${approval_number_1}" required />
+                            <label>批准文号1:</label>
+                            <input type="text" name="approval_number_1" class="styled-input edit_inputs" th:value="${approval_number_1}" />
                             <span class="span_line" readonly></span>
                         </div>
 
@@ -1317,7 +1330,7 @@
                         <!-- 参考零售价 -->
                         <div class="customize-form-group edit">
                             <label>参考零售价:</label>
-                            <input type="number" name="reference_retail_price" class="styled-input edit_inputs" step="0.01" th:value="${reference_retail_price}" required/>
+                            <input type="number" name="reference_retail_price" class="styled-input edit_inputs" step="0.01" th:value="${reference_retail_price}" />
                             <span class="span_line" readonly></span>
                         </div>
 
@@ -1483,7 +1496,6 @@
                             </select>
                             <span class="span_line" readonly></span>
                         </div>
-
                         <!-- 批发主推等级 -->
                         <div class="customize-form-group edit">
                             <label>批发主推等级:</label>
@@ -1498,7 +1510,7 @@
                         <!-- 平台属性 -->
                         <div class="customize-form-group edit">
                             <label>平台属性:</label>
-                            <input type="text" name="platform_property" class="styled-input edit_inputs" th:value="${platform_property}" required/>
+                            <input type="text" name="platform_property" class="styled-input edit_inputs" th:value="${platform_property}" />
                             <span class="span_line" readonly></span>
                         </div>
 
@@ -1631,118 +1643,234 @@
             $("#form-server-edit6"),
             $("#form-server-edit12")
         ];
+        var flag = true;
+
+        // 获取 product_code 并验证是否已填写
+        var productCodeData = $("#form-server-edit1").serializeArray().find(item => item.name === 'product_code');
+        if (!productCodeData || productCodeData.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】产品编码!");
+            keepFocusOnInput('product_code', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var product_name = $("#form-server-edit1").serializeArray().find(item => item.name === 'product_name');
+        if (!product_name || product_name.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】商品名称!");
+            keepFocusOnInput('product_name', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var generic_name = $("#form-server-edit1").serializeArray().find(item => item.name === 'generic_name');
+        if (!generic_name || generic_name.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】通用名!");
+            keepFocusOnInput('generic_name', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var packaging = $("#form-server-edit1").serializeArray().find(item => item.name === 'packaging');
+        if (!packaging || packaging.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】包装!");
+            keepFocusOnInput('packaging', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var manufacturer = $("#form-server-edit1").serializeArray().find(item => item.name === 'manufacturer');
+        if (!manufacturer || manufacturer.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】生产厂家!");
+            keepFocusOnInput('manufacturer', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var product_status = $("#form-server-edit1").serializeArray().find(item => item.name === 'product_status');
+        if (!product_status || product_status.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】商品状态!");
+            keepFocusOnInput('product_status', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var category_maj = $("#form-server-edit1").serializeArray().find(item => item.name === 'category_maj');
+        if (!category_maj || category_maj.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】商品大类!");
+            keepFocusOnInput('category_maj', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var category_min = $("#form-server-edit1").serializeArray().find(item => item.name === 'category_min');
+        if (!category_min || category_min.value === '') {
+            $.modal.alertWarning("请先填写【基本属性】商品子类!");
+            keepFocusOnInput('category_min', 5000);
+            flag = false;
+            return flag;
+        }
+
+        // D值配置属性
+        var specification = $("#form-server-edit12").serializeArray().find(item => item.name === 'specification');
+        if (!specification || specification.value === '') {
+            $.modal.alertWarning("请先填写【D值配置属性】规格!");
+            keepFocusOnInput('specification', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var prescription_required = $("#form-server-edit12").serializeArray().find(item => item.name === 'prescription_required');
+        if (!prescription_required || prescription_required.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】是否凭处方销售!");
+            keepFocusOnInput('prescription_required', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var registered_item = $("#form-server-edit12").serializeArray().find(item => item.name === 'registered_item');
+        if (!registered_item || registered_item.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】是否登记品!");
+            keepFocusOnInput('registered_item', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var follow_up_item = $("#form-server-edit12").serializeArray().find(item => item.name === 'follow_up_item');
+        if (!follow_up_item || follow_up_item.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】是否随访品!");
+            keepFocusOnInput('follow_up_item', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var cold_chain_item = $("#form-server-edit12").serializeArray().find(item => item.name === 'cold_chain_item');
+        if (!cold_chain_item || cold_chain_item.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】是否冷链品!");
+            keepFocusOnInput('cold_chain_item', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var flow_item = $("#form-server-edit12").serializeArray().find(item => item.name === 'flow_item');
+        if (!flow_item || flow_item.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】是否流向品!");
+            keepFocusOnInput('flow_item', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var dosage_max = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_max');
+        if (!dosage_max || dosage_max.value === '') {
+            $.modal.alertWarning("请填写【D值配置属性】最大剂量数量!");
+            keepFocusOnInput('dosage_max', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var unit_max = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_max');
+        if (!unit_max || unit_max.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】最大剂量单位!");
+            keepFocusOnInput('unit_max', 5000);
+            flag = false;
+            return flag;
+        }
 
-        // 初始化合并后的数据对象
-        var formData = {};
+        var dosage_normal = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_normal');
+        if (!dosage_normal || dosage_normal.value === '') {
+            $.modal.alertWarning("请填写【D值配置属性】常用剂量数量!");
+            keepFocusOnInput('dosage_normal', 5000);
+            flag = false;
+            return flag;
+        }
 
-        // 遍历每个表单并将数据添加到 formData 对象中
+        var unit_normal = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_normal');
+        if (!unit_normal || unit_normal.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】常用剂量单位!");
+            keepFocusOnInput('unit_normal', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var dosage_min = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_min');
+        if (!dosage_min || dosage_min.value === '') {
+            $.modal.alertWarning("请填写【D值配置属性】最小剂量数量!");
+            keepFocusOnInput('dosage_min', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var unit_min = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_min');
+        if (!unit_min || unit_min.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】最小剂量单位!");
+            keepFocusOnInput('unit_min', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var packing_value = $("#form-server-edit12").serializeArray().find(item => item.name === 'packing_value');
+        if (!packing_value || packing_value.value === '') {
+            $.modal.alertWarning("请填写【D值配置属性】购药包装单位数值!");
+            keepFocusOnInput('packing_value', 5000);
+            flag = false;
+            return flag;
+        }
+
+        var packing_unit = $("#form-server-edit12").serializeArray().find(item => item.name === 'packing_unit');
+        if (!packing_unit || packing_unit.value === '') {
+            $.modal.alertWarning("请选择【D值配置属性】包装单位!");
+            keepFocusOnInput('packing_unit', 5000);
+            flag = false;
+            return flag;
+        }
+
+        // 初始化合并后的数据数组
+        var allData = [];
+
+        // 遍历每个表单并将数据添加到 allData 中
         forms.forEach(function(form) {
-            form.find("[name]").each(function() {
-                var $this = $(this),
-                    name = $this.attr('name'),
-                    value;
-
-                // 获取不同类型的值
-                if ($this.is(':input') || $this.is('[contenteditable]')) {
-                    value = $this.is('[contenteditable]') ? $this.text().trim() : $this.val();
-
-                    // 处理多选框和复选框
-                    if ($this.is('select[multiple], input[type="checkbox"], input[type="radio"]')) {
-                        if ($this.is(':checked')) {
-                            if (!formData[name]) {
-                                formData[name] = [];
-                            }
-                            formData[name].push(value);
-                        }
-                    } else if (value !== null && value !== undefined && value !== '') {
-                        formData[name] = value;
-                    }
-                }
-            });
+            var formData = $(form).serializeArray();
+            // 确保 product_code 存在于每个表单数据中
+            formData.push({ name: 'product_code', value: productCodeData.value });
+            allData = allData.concat(formData);
         });
 
-        // 定义必填字段及其对应的提示信息
-        var requiredFields = {
-            'product_code': "请先填写【基本属性】产品编码!",
-            'product_name': "请先填写【基本属性】商品名称!",
-            'manufacturer': "请先填写【基本属性】生产厂家!",
-            'product_status': "请先填写【基本属性】商品状态!",
-            'category_maj': "请先填写【基本属性】商品大类!",
-            'category_min': "请先填写【基本属性】商品小类!",
-            'specification': "请先填写【基本属性】规格!",
-            'packaging': "请先填写【基本属性】包装!",
-            'reference_purchase_price': "请先填写【采购属性】参考进价!",
-            'national_negotiated_price': "请先填写【采购属性】国谈价格!",
-            'storage_category': "请先填写【存储分类】存储分类!",
-            'approval_number_1': "请先填写【质管属性】批准文号1!",
-            'reference_retail_price': "请先填写【销售属性】参考零售价!",
-            'platform_property': "请先填写【业态属性】平台属性!",
-            'follow_up_item': "请选择是【D值配置属性】否随访品!",
-            'cold_chain_item': "请选择【D值配置属性】是否冷链品!",
-            'registered_item': "请选择【D值配置属性】是否登记品!",
-            'flow_item': "请选择【D值配置属性】是否流向品!",
-            'prescription_required': "请选择【D值配置属性】是否凭处方销售!"
-        };
-
-        // 验证必填字段
-        for (var field in requiredFields) {
-            if (!formData[field] || (Array.isArray(formData[field]) && formData[field].length === 0)) {
-                $.modal.alertWarning(requiredFields[field]);
-                return null;
-            }
+        if (flag) {
+            return allData;
+        } else {
+            return false;
         }
+    }
+
+    function keepFocusOnInput(fieldName, duration = 5000) {
+        var element = $('[name="' + fieldName + '"]');
+        let intervalId;
 
-        // 返回最终的数据对象
-        return formData;
+        if (element.length && element.is(':visible')) {
+            element.focus();
+
+            // 开始一个间隔定时器,在指定的时间内重复设置焦点
+            intervalId = setInterval(() => {
+                element.focus();
+                if (element.is('input[type="text"], textarea')) {
+                    element[0].setSelectionRange(element.val().length, element.val().length);
+                }
+            }, 200); // 每 200ms 设置一次焦点
+
+            // 在指定时间后清除定时器
+            setTimeout(() => {
+                clearInterval(intervalId);
+            }, duration);
+        } else {
+            console.warn("无法找到或访问名为 " + fieldName + " 的元素");
+        }
     }
+
     function submitHandler() {
         if ($.validate.form()) {
-            var dosage_max = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_max');
-            if (dosage_max.value === '') {
-                $.modal.alertWarning("请选择【D值配置属性】最大剂量数量!");
-                return null;
-            }
-            var dosage_min = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_min');
-            if (dosage_min.value === '') {
-                $.modal.alertWarning("请选择【D值配置属性】最小剂量数量!");
-                return null;
-            }
-            var unit_max = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_max');
-            if (unit_max.value === '') {
-                $.modal.alertWarning("请选择【D值配置属性】最大剂量单位!");
-                return null;
-            }
-            var unit_min = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_min');
-            if (unit_min.value === '') {
-                $.modal.alertWarning("请选择【D值配置属性】最小剂量单位!");
-                return null;
-            }
-            var unit_normal = $("#form-server-edit12").serializeArray().find(item => item.name === 'unit_normal');
-            if (unit_normal.value === '') {
-                $.modal.alertWarning("请选择【D值配置属性】常见计量单位!");
-                return null;
-            }
-            var dosage_normal = $("#form-server-edit12").serializeArray().find(item => item.name === 'dosage_normal');
-            if (dosage_normal.value === '') {
-                $.modal.alertWarning("请选择【D值配置属性】常见计量数量!");
-                return null;
-            }
-            var packing_value = $("#form-server-edit12").serializeArray().find(item => item.name === 'packing_value');
-            if (packing_value.value === '') {
-                $.modal.alertWarning("请选择【D值配置属性】包装单位值!");
-                return null;
-            }
-            var packing_unit = $("#form-server-edit12").serializeArray().find(item => item.name === 'packing_unit');
-            if (packing_unit.value === '') {
-                $.modal.alertWarning("请选择【D值配置属性】包装单位!");
-                return null;
-            }
             var allData = collectFormData();
-            if (allData.product_code === '') {
-                $.modal.alertWarning("请先填写产品编码!");
+            if (allData === false) {
                 return;
             }
-
             $.ajax({
                 url: prefix + "/ProductUpdate", // 后台接口地址
                 type: "post",
@@ -1768,4 +1896,4 @@
             });
         }
     }
-</script>
+</script>

+ 110 - 2
health-system/src/main/resources/mapper/gxhpz/followTaskMapper.xml

@@ -7,7 +7,7 @@
 
 
     <!-- 查询任务 -->
-    <select id="selectFollowTasks" parameterType="pd" resultType="pd">
+    <select id="selectFollowTasks111" parameterType="pd" resultType="pd">
         SELECT
         t.*,
         n.useForm,
@@ -107,7 +107,115 @@
         and t.taskStatus != '未下发'
         <!-- 省略其他字段条件... -->
     </select>
-
+    <select id="selectFollowTasks" parameterType="pd" resultType="pd">
+        SELECT
+        t.*,
+        n.useForm,
+        n.followUpSubject,
+        n.taskMaterial,
+        n.taskActionTaskType,
+        v.sum_total - DATEDIFF(CURRENT_DATE(), v.sum_total_update_time) AS adjusted_sum_total,
+        v.dValueCode,
+        a.dl
+        FROM
+        s_gxhpz_follow_task t
+        LEFT JOIN
+        s_gxhpz_follow_task_node n ON t.taskId = n.taskId
+        LEFT JOIN
+        s_dtp_ysfw_archive_management a ON t.patientId = a.id
+        LEFT JOIN
+        (
+        SELECT * FROM (
+        SELECT
+        *,
+        ROW_NUMBER() OVER (
+        PARTITION BY storeId, patientId, mdmCode
+        ORDER BY sum_total_update_time DESC
+        ) as rn
+        FROM s_gxhpz_patient_d_value
+        ) ranked_values
+        WHERE rn = 1
+        ) v ON CONVERT(t.storeId USING utf8mb4) COLLATE utf8mb4_unicode_ci = CONVERT(v.storeId USING utf8mb4) COLLATE utf8mb4_unicode_ci
+        AND CONVERT(t.patientId USING utf8mb4) COLLATE utf8mb4_unicode_ci = CONVERT(v.patientId USING utf8mb4) COLLATE utf8mb4_unicode_ci
+        AND CONVERT(t.mdmCode USING utf8mb4) COLLATE utf8mb4_unicode_ci = CONVERT(v.mdmCode USING utf8mb4) COLLATE utf8mb4_unicode_ci
+        where 1 = 1
+        <if test="id != null">
+            and t.id = #{id}
+        </if>
+        <if test="sum_total_start != null and sum_total_start != '' and sum_total_end != null and sum_total_end != ''">
+            and v.sum_total between #{sum_total_start} and #{sum_total_end}
+        </if>
+        <if test="taskActionTaskType != null and taskActionTaskType!=''">
+            and n.taskActionTaskType = #{taskActionTaskType}
+        </if>
+        <if test="appointmentDate != null">
+            and t.appointmentDate = #{appointmentDate}
+        </if>
+        <if test="subscribebeginTime != null and subscribebeginTime!='' and  subscribeendTime != null and subscribeendTime!=''">
+            and t.appointmentDate between #{subscribebeginTime} and #{subscribeendTime}
+        </if>
+        <if test="businessBelonging != null and businessBelonging != ''">
+            and t.businessBelonging = #{businessBelonging}
+        </if>
+        <if test="taskName != null and taskName != ''">
+            and t.taskName = #{taskName}
+        </if>
+        <if test="patientId != null and patientId != ''">
+            and t.patientId = #{patientId}
+        </if>
+        <if test="taskTheme != null and taskTheme != ''">
+            and t.taskTheme = #{taskTheme}
+        </if>
+        <if test="taskFollower != null and taskFollower != ''">
+            and t.taskFollower = #{taskFollower}
+        </if>
+        <if test="storeId != null and storeId != ''">
+            and t.storeId in (
+            WITH RECURSIVE subordinates AS (
+            SELECT dept_id
+            FROM sys_dept
+            WHERE parent_id = #{storeId} or dept_id = #{storeId}
+            UNION ALL
+            SELECT sd.dept_id
+            FROM sys_dept sd
+            INNER JOIN subordinates ss ON sd.parent_id = ss.dept_id
+            )
+            SELECT DISTINCT dept_id
+            FROM subordinates
+            UNION
+            SELECT #{storeId} AS dept_id
+            )
+        </if>
+        <if test="templeName != null and templeName != ''">
+            and t.templeName = #{templeName}
+        </if>
+        <if test="planId != null and planId != ''">
+            and t.planId = #{planId}
+        </if>
+        <if test="drugsLinkId != null and drugsLinkId != ''">
+            and t.drugsLinkId = #{drugsLinkId}
+        </if>
+        <if test="patientName != null and patientName != ''">
+            and t.patientName = #{patientName}
+        </if>
+        <if test="mdmCode != null and mdmCode != '' ">
+            and t.mdmCode = #{mdmCode}
+        </if>
+        <if test="disease != null and disease != '' ">
+            AND MATCH(a.dl_names) AGAINST(#{disease} IN BOOLEAN MODE)
+        </if>
+        <if test="taskStatus != null and taskStatus != ''">
+            and t.taskStatus = #{taskStatus}
+        </if>
+        <if test="query != null and query != ''">
+            AND (t.patientName LIKE CONCAT('%', #{query}, '%') OR t.patientId =#{query})
+        </if>
+        <if test="product != null and product != ''">
+            AND (t.genericName LIKE CONCAT('%', #{product}, '%') OR t.productName LIKE CONCAT('%', #{product}, '%') OR t.mdmCode LIKE CONCAT('%', #{product}, '%'))
+        </if>
+        and t.taskStatus != '未下发'
+        <!-- 省略其他字段条件... -->
+    </select>
     <!-- 根据ID查询单个任务 -->
     <select id="selectOneById" parameterType="pd" resultType="pd">
         select t.*,