Pārlūkot izejas kodu

fix:补充提交-完善领料模块

韩帛霖 9 mēneši atpakaļ
vecāks
revīzija
b951bf6bf0

+ 8 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/RequisitionOrdersMapper.java

@@ -101,4 +101,12 @@ public interface RequisitionOrdersMapper {
      * @return 领料单
      */
     public RequisitionOrders selectRequisitionOrdersByTaskCode(String taskCode);
+
+    /**
+     * 查询领料单
+     *
+     * @param taskCode 任务主键
+     * @return 领料单
+     */
+    public RequisitionOrders selectRequisitionOrdersByTaskCode1(String taskCode);
 }

+ 29 - 1
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/RequisitionOrdersServiceImpl.java

@@ -126,7 +126,35 @@ public class RequisitionOrdersServiceImpl implements IRequisitionOrdersService {
 
     @Override
     public RequisitionOrders selectRequisitionOrdersByTaskCode(String taskCode) {
-        return requisitionOrdersMapper.selectRequisitionOrdersByTaskCode(taskCode);
+
+        // 领料
+        RequisitionOrders requisitionOrders = requisitionOrdersMapper.selectRequisitionOrdersByTaskCode(taskCode);
+
+        // 退料
+        RequisitionOrders requisitionOrders1 = requisitionOrdersMapper.selectRequisitionOrdersByTaskCode1(taskCode);
+        if (requisitionOrders1 != null)
+
+            requisitionOrders1.getRequisitionItemsList().forEach(item1 -> {
+//                Double asd1 =
+//                        Double.valueOf(requisitionOrders.getRequisitionItemsList().stream()
+//                                .filter(item -> item.getMaterialId().equals(item1.getMaterialId()))
+//                                .findFirst()
+//                                .get().getQuantity());
+//                Double asd2 = Double.valueOf(item1.getQuantity());
+//                System.out.println(asd1 - asd2);
+                requisitionOrders.getRequisitionItemsList().stream()
+                        .filter(item -> item.getMaterialId().equals(item1.getMaterialId()))
+                        .findFirst()
+                        .get()
+                        .setQuantity(
+                                String.valueOf(Double.valueOf(requisitionOrders.getRequisitionItemsList().stream()
+                                        .filter(item -> item.getMaterialId().equals(item1.getMaterialId()))
+                                        .findFirst()
+                                        .get().getQuantity()) -
+                                        Double.valueOf(item1.getQuantity()))
+                        );
+            });
+        return requisitionOrders;
     }
 
     /**

+ 38 - 1
zkqy-custom-business/src/main/resources/mapper/business/RequisitionOrdersMapper.xml

@@ -129,7 +129,7 @@
         <where>
             and del_flag = '0'
             <if test="taskCode != null  and taskCode != ''">and task_code = #{taskCode}</if>
-            <if test="requistionOrdersType != null  and requistionOrdersType != ''">and requistion_orders_type =
+            <if test="requistionOrdersType != null ">and requistion_orders_type =
                 #{requistionOrdersType}
             </if>
             <if test="requisitionNumber != null  and requisitionNumber != ''">and requisition_number =
@@ -204,6 +204,43 @@
             b.material_id
     </select>
 
+    <select id="selectRequisitionOrdersByTaskCode1" parameterType="String"
+            resultMap="RequisitionOrdersRequisitionItemsResult">
+        select a.task_code,
+               a.sale_order_no,
+               a.del_flag,
+               a.requistion_orders_type,
+               b.id                   as sub_id,
+               b.requisition_code     as sub_requisition_code,
+               b.material_id          as sub_material_id,
+               sum(b.actual_quantity) as sub_quantity,
+               b.state                as sub_state,
+               b.specifications       as sub_specifications,
+               b.color_code           as sub_color_code,
+               b.remark               as sub_remark,
+               b.create_by_id         as sub_create_by_id,
+               b.create_by            as sub_create_by,
+               b.create_time          as sub_create_time,
+               b.update_by_id         as sub_update_by_id,
+               b.update_by            as sub_update_by,
+               b.update_time          as sub_update_time,
+               b.del_flag             as sub_del_flag,
+               b.data_approval_status as sub_data_approval_status,
+               b.process_key          as sub_process_key,
+               b.task_process_key     as sub_task_process_key,
+               b.task_node_key        as sub_task_node_key
+        from {DBNAME}.requisition_orders a
+                left join {DBNAME}.requisition_items b
+        on b.requisition_code = a.id
+        where a.task_code = #{taskCode}
+          and a.del_flag = '0'
+          and b.del_flag = '0'
+          and a.requistion_orders_type = 1
+          and a.state = 2
+        group by
+            b.material_id
+    </select>
+
     <insert id="insertRequisitionOrders" parameterType="com.zkqy.business.domain.RequisitionOrders"
             useGeneratedKeys="true" keyProperty="id">
         insert into {DBNAME}.requisition_orders

+ 18 - 8
zkqy-ui/src/views/orderMange/requisitionOrders/approval.vue

@@ -73,14 +73,24 @@
       <el-table-column label="备注" align="center" prop="remark"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="toExamine(scope.row)"
-            v-hasPermi="['business:requisitionOrders:edit']"
-          >审核
-          </el-button>
+
+          <el-dropdown>
+            <el-button type="warning" plain size="small">
+              操作<i class="el-icon-arrow-down el-icon--right"></i>
+            </el-button>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit"
+                  @click="toExamine(scope.row)"
+                  v-hasPermi="['business:requisitionOrders:edit']"
+                >审核
+                </el-button>
+              </el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
         </template>
       </el-table-column>
     </el-table>

+ 87 - 50
zkqy-ui/src/views/orderMange/requisitionOrders/index.vue

@@ -33,13 +33,12 @@
                         placeholder="请选择领料日期">
         </el-date-picker>
       </el-form-item>
-      <el-form-item label="领料状态" prop="state">
-        <el-input
-          v-model="queryParams.state"
-          placeholder="请输入领料状态"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="单据类型" prop="state">
+        <el-select v-model="queryParams.requistionOrdersType" filterable placeholder="请选择任务领料"
+                   @change="handleQuery">
+          <el-option key="1" label="领料" :value="0"/>
+          <el-option key="2" label="退料" :value="1"/>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -123,45 +122,43 @@
       <el-table-column label="备注" align="center" prop="remark"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button v-show="scope.row.state == 0"
-                     size="mini"
-                     type="text"
-                     icon="el-icon-edit"
-                     @click="submitForApproval(scope.row)"
-                     v-hasPermi="['business:requisitionOrders:edit']"
-          >提交
-          </el-button>
-          <el-button v-show="scope.row.state == 2 && scope.row.requistionOrdersType == 0"
-                     size="mini"
-                     type="text"
-                     icon="el-icon-edit"
-                     @click="requistion(scope.row)"
-                     v-hasPermi="['business:requisitionOrders:edit']"
-          >领料
-          </el-button>
-          <el-button v-show="scope.row.state == 0"
-                     size="mini"
-                     type="text"
-                     icon="el-icon-edit"
-                     @click="handleUpdate(scope.row)"
-                     v-hasPermi="['business:requisitionOrders:edit']"
-          >修改
-          </el-button>
-          <el-button v-show="scope.row.state == 0"
-                     size="mini"
-                     type="text"
-                     icon="el-icon-delete"
-                     @click="handleDelete(scope.row)"
-                     v-hasPermi="['business:requisitionOrders:remove']"
-          >删除
-          </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handlePrint(scope.row)"
-          >打印单据
-          </el-button>
+          <el-dropdown>
+            <el-button type="warning" plain size="small">
+              操作<i class="el-icon-arrow-down el-icon--right"></i>
+            </el-button>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item>
+                <el-button v-show="scope.row.state == 0 || scope.row.state==3" size="mini" type="text"
+                           icon="el-icon-edit"
+                           @click="submitForApproval(scope.row)" v-hasPermi="['business:requisitionOrders:edit']">提交
+                </el-button>
+              </el-dropdown-item>
+              <el-dropdown-item>
+                <el-button v-show="scope.row.state == 2 && scope.row.requistionOrdersType == 0" size="mini" type="text"
+                           icon="el-icon-edit" @click="requistion(scope.row)"
+                           v-hasPermi="['business:requisitionOrders:edit']">领料
+                </el-button>
+              </el-dropdown-item>
+              <el-dropdown-item>
+                <el-button v-show="scope.row.state == 0 || scope.row.state== 3" size="mini" type="text"
+                           icon="el-icon-edit"
+                           @click="handleUpdate(scope.row)" v-hasPermi="['business:requisitionOrders:edit']">修改
+                </el-button>
+              </el-dropdown-item>
+              <el-dropdown-item>
+                <el-button v-show="scope.row.state == 0 || scope.row.state == 3" size="mini" type="text"
+                           icon="el-icon-delete"
+                           @click="handleDelete(scope.row)" v-hasPermi="['business:requisitionOrders:remove']">删除
+                </el-button>
+              </el-dropdown-item>
+              <el-dropdown-item>
+                <el-button
+                  v-show="scope.row.state == 5|| (scope.row.state ==2 && scope.row.requistionOrdersType == 1)"
+                  size="mini" type="text" icon="el-icon-delete" @click="handlePrint(scope.row)">打印单据
+                </el-button>
+              </el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
         </template>
       </el-table-column>
     </el-table>
@@ -183,7 +180,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="领料任务" prop="state">
+            <el-form-item label="领料任务" prop="taskCode">
               <el-select v-model="form.taskCode" filterable placeholder="请选择任务领料" :disabled="requistionState"
                          @change="handleRequistionState(form.requistionOrdersType)">
                 <el-option v-for="item in taskList" :key="item.saleProductsId" :label="item.saleProductsTaskName"
@@ -193,7 +190,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="领料日期" prop="requisitionDate">
-              <el-date-picker clearable style="width: 100%" v-model="form.requisitionDate" type="date"
+              <el-date-picker style="width: 100%" v-model="form.requisitionDate" type="date"
                               value-format="yyyy-MM-dd" placeholder="请选择领料日期"
                               :disabled="requistionState"></el-date-picker>
             </el-form-item>
@@ -221,7 +218,8 @@
           <el-table-column label="序号" align="center" prop="index" width="50"/>
           <el-table-column label="物料" prop="materialId" align="center">
             <template slot-scope="scope">
-              <el-select v-model="scope.row.materialId" filterable placeholder="请选择物料" :disabled="requistionState"
+              <el-select v-model="scope.row.materialId" filterable placeholder="请选择物料"
+                         :disabled="requistionState"
                          @change="handleMaterielInfo(scope)">
                 <el-option v-for="mtem in materielList" :key="mtem.id" :label="mtem.materielCode+''+mtem.materielName"
                            :value="mtem.materielCode"></el-option>
@@ -306,6 +304,7 @@ export default {
         pageNum: 1,
         pageSize: 10,
         taskCode: null,
+        requistionOrdersType: 0,
         requisitionNumber: null,
         saleOrderNo: null,
         requisitionDate: null,
@@ -320,7 +319,16 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {},
+      rules: {
+        taskCode: [
+          {required: true, message: '请选择任务领料', trigger: 'blur'}
+        ],
+        requisitionItemsList: {
+          materialId: [
+            {required: true, message: '请选择任务领料', trigger: 'blur'}
+          ],
+        }
+      },
       // 可领料任务列表
       taskList: [],
       // 物料信息表
@@ -458,6 +466,35 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
+      if (this.requisitionItemsList.length == 0) {
+        return this.$message.error("请添加物料信息");
+      }
+      let state = 0;
+      this.requisitionItemsList.forEach(item => {
+
+        if (this.form.requistionOrdersType == 0) {
+          if (item.materialId == null || item.materialId == '') {
+            console.log("物料信息不能为空")
+            state = 1;
+          }
+          if (item.quantity == null || item.quantity == '') {
+            console.log("数量不能为空")
+            state = 1;
+          }
+        } else {
+          // 退料
+          if (item.actualQuantity == null || item.actualQuantity == '') {
+            console.log("实际领料数量不能为空")
+            state = 1;
+          }
+        }
+      });
+
+      if (state == 1) {
+        return this.$message.error("请完善表单数据");
+      }
+
+      return;
       this.$refs["form"].validate(valid => {
         if (valid) {
           this.form.requisitionItemsList = this.requisitionItemsList;