chenlu
2025-12-02 b159f7795dd800fd599589f36c2d6349e5cf15e7
流程卡明细界面修改工艺添加限制
5个文件已修改
105 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
@@ -14,6 +14,7 @@
import {VXETable} from "vxe-table";
import  useUserInfoStore from '@/stores/userInfo'
import {useI18n} from "vue-i18n";
import { computed } from 'vue'
import UpdateOrderCraft from "@/components/sd/order/UpdateOrderCraft.vue";
import {filterChanged} from "@/hook";
let productGlassTypeStore = useProductGlassTypeStore()
@@ -78,20 +79,40 @@
const saveCraft = () => {
  //rowIndex.value.process = craftObj.newCraft.join('->')
 let orderProcess= craftObj.newCraft.join('->')
  request.post(`/processCard/updateProcess/${rowIndex.value.process_id}/${rowIndex.value.order_number}/${rowIndex.value.technology_number}/${rowIndex.value.order_id}/${orderProcess}`, craftObj).then((res) => {
    if (res.code == 200 && res.data === true) {
      ElMessage.success(t('basicData.msg.saveSuccess'))
      router.push({
        path: '/main/processCard/SelectDetailProcessCard',
        query: {processId: processId,random: Math.random()}
      })
    } else {
  //获取差异工序
  const diffCraft = computed(() => {
    return [
      ...craftObj.oldCraft.filter(item => !craftObj.newCraft.includes(item)), //删除
      ...craftObj.newCraft.filter(item => !craftObj.oldCraft.includes(item))//增加
    ]
  })
  if (diffCraft.value == '') {//无变化不执行后续
    return
  }
  //获取最新报工工序的顺序
request.post(`/processCard/getNewProcess/${rowIndex.value.process_id}/${rowIndex.value.order_number}/${rowIndex.value.technology_number}/${diffCraft.value}`).then((res) => {
    if (res.code == 200 ) {
      if (res.data){
        request.post(`/processCard/updateProcess/${rowIndex.value.process_id}/${rowIndex.value.order_number}/${rowIndex.value.technology_number}/${rowIndex.value.order_id}/${orderProcess}`, craftObj).then((res) => {
          if (res.code == 200 && res.data === true) {
            ElMessage.success(t('basicData.msg.saveSuccess'))
            router.push({
              path: '/main/processCard/SelectDetailProcessCard',
              query: {processId: processId,random: Math.random()}
            })
          } else {
      ElMessage.warning(t('processCard.updateProcessMsg'))
            ElMessage.warning(t('processCard.updateProcessMsg'))
          }
        })
        craftVisible.value= false
      }else {
        ElMessage.warning(t('processCard.updateProcessMsg'))
      }
    }
  })
  craftVisible.value= false
}
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -450,6 +450,15 @@
    }
    @ApiOperation("获取最报工新工序")
    @PostMapping("/getNewProcess/{processId}/{orderNumber}/{technologyNumber}/{orderProcess}")
    public Result getNewProcess(@PathVariable String processId,
                                @PathVariable String orderNumber,
                                @PathVariable String technologyNumber,
                                @PathVariable List<String> orderProcess){
        return Result.success(flowCardService.getNewProcessSv(processId,orderNumber,technologyNumber,orderProcess));
    }
    @ApiOperation("修改工艺流程")
    @PostMapping("/updateProcess/{processId}/{orderNumber}/{technologyNumber}/{orderId}/{process}")
    public Result updateProcess(
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -1,6 +1,5 @@
package com.example.erp.mapper.pp;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.erp.dto.pp.FlowCardDTO;
import com.example.erp.entity.pp.FlowCard;
@@ -298,4 +297,8 @@
    Boolean updateTerminationStatus(String processId, Integer orderNumber);
    Boolean updateTerminationNoMp(String processId, Integer orderNumber);
    List<Map<String, Object>> getNewProcessMp(String processId, String orderNumber, String technologyNumber);
    Map<String, Object> getProcessInfo( String processName);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -33,7 +33,6 @@
import java.io.IOException;
import java.sql.Date;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -1354,11 +1353,13 @@
            }
            //将原来已报工的数据更新
            if (resultList != null && !resultList.isEmpty()) {
                for (OrderProcessDetail d : resultList) {
                    flowCardMapper.updateOrderProcessDetail(d.getProcessId(),d.getOrderNumber(),d.getTechnologyNumber(),
                            d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
                for (String number : numberList) {
                    for (OrderProcessDetail d : resultList) {
                        flowCardMapper.updateOrderProcessDetail(d.getProcessId(),number,d.getTechnologyNumber(),
                                d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
                    }
                }
            }
            return true;
@@ -1758,6 +1759,33 @@
    }
    public boolean getNewProcessSv(String processId, String orderNumber, String technologyNumber, List<String> orderProcess) {
        // 获取最新报工工序
        List<Map<String, Object>> newProcess = flowCardMapper.getNewProcessMp(processId, orderNumber, technologyNumber);
        if (newProcess == null || newProcess.isEmpty()) {
            return false; // 找不到标准值
        }
        // 最新工序排序号
        int standardSort = Integer.parseInt(newProcess.get(0).get("sort").toString());
        // 循环 orderProcess 的每一个工序,查询它们的 sort
        for (String processName : orderProcess) {
            Map<String, Object> data = flowCardMapper.getProcessInfo(processName);
            if (data == null) {
                return false; // 工序查不到
            }
            int orderSort = Integer.parseInt(data.get("sort").toString());
            // orderSort 必须 > standardSort
            if (orderSort <= standardSort) {
                return false;
            }
        }
        return true;
    }
}
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -3911,4 +3911,16 @@
    <update id="updateTerminationNoMp">
        update pp.flow_card set termination_status=0 , termination_quantity=0 where process_id = #{processId} and order_number = #{orderNumber}
    </update>
    <select id="getNewProcessMp">
        select opd.process,bd.sort  from sd.order_process_detail as opd
            left join sd.basic_data as bd on bd.basic_name = opd.process and bd.basic_category='process'
        where opd.process_id=#{processId} and opd.order_number=#{orderNumber}
          and opd.technology_number = #{technologyNumber} and reporting_work_num_count>0 ORDER BY opd.id DESC LIMIT 1
    </select>
    <select id="getProcessInfo">
        select basic_name as process,sort FROM sd.basic_data as bd
        where bd.basic_category='process' and bd.basic_name = #{processName}
    </select>
</mapper>