春风项目四线(合箱线、总装线)
wujian
2024-09-10 51b05b093fa15dd477981372f67ae7b3b2747733
change-3
已修改13个文件
376 ■■■■■ 文件已修改
jcdm-admin/src/main/resources/application-druid.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/mapper/ProductNewPassStationMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/ProductNewPassStationService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/ProductNewPassStationServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/passingStationCollection/ProductNewPassStationMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/detail.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/index.vue 194 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-admin/src/main/resources/application-druid.yml
@@ -28,7 +28,7 @@
#                 username: dt
#                 password: dtroot
            master:
                 url: jdbc:sqlserver://192.168.6.238:1433;DataBaseName=Jcdm041-Mes
                 url: jdbc:sqlserver://192.168.6.238:1433;DataBaseName=Jcdm041-Mes2
                 username: dt
                 password: dtroot
            # 从库数据源
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java
@@ -476,4 +476,27 @@
        }
    }
    @GetMapping("/changeBoxCode")
    public R changeBoxCode(String sfcCode,String newBoxCode){
        if (StringUtils.isEmpty(newBoxCode)){
            return R.fail(500,"箱体码不能为空,请重试");
        }
        if (StringUtils.isEmpty(sfcCode)){
            return R.fail(500,"发动机号不能为空,请重试");
        }
        if (!newBoxCode.contains(",")){
            return R.fail(500,"箱体码格式有误,请重试");
        }
        ProductNewPassStation checkStation = new ProductNewPassStation();
        checkStation.setSfcCode(sfcCode);
        List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(checkStation);
        if (CollUtil.isNotEmpty(productPassStationList)){
            productNewPassStationService.updateBoxCodeBySfcCode(sfcCode, newBoxCode);
            return R.ok();
        } else {
            return R.fail("未查找到该发动机号对应的箱体");
        }
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/mapper/ProductNewPassStationMapper.java
@@ -24,6 +24,7 @@
    public List<ProductNewPassStation> getProductPassStationListByEngineList(@Param("engineNoList") List<String> engineNoList);
    public void updatePassStationBySfcCode(String sfcCode);
    public void updateBoxCodeBySfcCode(@Param("sfcCode") String sfcCode, @Param("newBoxCode") String newBoxCode);
    public void updatePassStationRodCodeBySfcCode(String sfcCode);
}
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/ProductNewPassStationService.java
@@ -20,6 +20,7 @@
    public List<ProductNewPassStation> getProductPassStationListByEngineList(List<String> engineNoList);
    public void updatePassStationBySfcCode(String sfcCode);
    public void updateBoxCodeBySfcCode(String sfcCode,String newBoxCode);
    public void insertPassStation(ProductNewPassStation productNewPassStation);
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java
@@ -225,13 +225,15 @@
                    rmRepairRecordMapper.deleteRmRepairRecordByCode(sfcCode);
                }
            }
            RmRepairRecord rmRepairRecord = new RmRepairRecord();
            rmRepairRecord.setBoxCode(result.getSfcCode());
            rmRepairRecord.setProcessesCode(result.getLocationCode());
            rmRepairRecord.setOriginalResult(result.getOutRsSign());
            rmRepairRecord.setCreateTime(new Date());
            rmRepairRecordMapper.insertRmRepairRecord(rmRepairRecord);
            daPassingStationCollectionMapper.deleteDaPassingStationCollectionById(result.getId());
            if (ObjectUtil.isNotEmpty(result)){
                RmRepairRecord rmRepairRecord = new RmRepairRecord();
                rmRepairRecord.setBoxCode(result.getSfcCode());
                rmRepairRecord.setProcessesCode(result.getLocationCode());
                rmRepairRecord.setOriginalResult(result.getOutRsSign());
                rmRepairRecord.setCreateTime(new Date());
                rmRepairRecordMapper.insertRmRepairRecord(rmRepairRecord);
                daPassingStationCollectionMapper.deleteDaPassingStationCollectionById(result.getId());
            }
        }
    }
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/ProductNewPassStationServiceImpl.java
@@ -42,6 +42,11 @@
    }
    @Override
    public void updateBoxCodeBySfcCode(String sfcCode, String newBoxCode) {
        productNewPassStationMapper.updateBoxCodeBySfcCode(sfcCode, newBoxCode);
    }
    @Override
    public void insertPassStation(ProductNewPassStation productNewPassStation) {
        productNewPassStationMapper.insertPassStation(productNewPassStation);
    }
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -264,8 +264,11 @@
        if (StrUtil.isBlank(factory)){
            throw new ServiceException("请选择工厂编号");
        }
        List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
        if(omProductionOrdeInfos.size() == 0){
        OmProductionOrdeInfo queryProductOrder = new OmProductionOrdeInfo();
        queryProductOrder.setWorkshopCode(factory);
        queryProductOrder.setProductionNotice(productionNotice);
        List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(queryProductOrder);
        if(CollUtil.isEmpty(omProductionOrdeInfos)){
            try {
                logger.info("接收工单号:,{}",productionNotice);
                ReceivingServices.insertWebserviceData(factory,productionNotice);
jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java
@@ -31,9 +31,8 @@
import org.springframework.web.bind.annotation.RestController;
import javax.swing.border.Border;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
public class ReceivingServices {
@@ -176,7 +175,7 @@
        }
        // 设置请求头部,否则可能会报 “no SOAPAction header” 的错误
        postMethod.setRequestHeader("SOAPAction", "");
        postMethod.setRequestHeader("SOAPAction", "application/x-www-form-urlencoded; charset=UTF-8");
        // 设置请求体
        postMethod.setRequestEntity(requestEntity);
        int status = 0;
@@ -188,19 +187,14 @@
        }
        if (status == 200) {// 成功
            InputStream is = null;
            try {
                is = postMethod.getResponseBodyAsStream();
            } catch (IOException e) {
                logger.info("errorLocation2,"+e);
                throw new RuntimeException(e);
            }
            // 获取请求结果字符串
            String result = null;
            try {
                result = IOUtils.toString(is);
                result = postMethod.getResponseBodyAsString();
                logger.info("二次输出流333333,{}",result);
                return result;
            } catch (IOException e) {
                logger.info("errorLocation3,"+e);
                logger.info("errorLocation2,"+e);
                throw new RuntimeException(e);
            }
        }
jcdm-main/src/main/resources/mapper/da/passingStationCollection/ProductNewPassStationMapper.xml
@@ -64,6 +64,9 @@
    <update id="updatePassStationRodCode">
        update product_new_pass_station set rod_code = #{rodCode} where sfc_code = #{sfcCode}
    </update>
    <update id="updateBoxCodeBySfcCode">
        update product_new_pass_station set box_code = #{newBoxCode} where sfc_code = #{sfcCode}
    </update>
    <select id="getPassStation"
            resultMap="ProductNewPassStationResult">
        <include refid="selectProductNewPassStationVo"/>
jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java
@@ -95,7 +95,8 @@
        List<BsOrderScheduling> bsOrderSchedulings = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
        String status="";
        String ev_meassage="";
        for (BsOrderScheduling orderScheduling : bsOrderSchedulings) {
        if (CollUtil.isNotEmpty(bsOrderSchedulings)){
            BsOrderScheduling orderScheduling = bsOrderSchedulings.get(0);
            try {
                String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0010"));
                ev_meassage=ReceivingServices.xmlToJSON1(xmlResult);
@@ -135,7 +136,8 @@
        List<BsOrderScheduling> bsOrderSchedulings = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
        String status="";
        String ev_meassage="";
        for (BsOrderScheduling orderScheduling : bsOrderSchedulings) {
        if (CollUtil.isNotEmpty(bsOrderSchedulings)){
            BsOrderScheduling orderScheduling = bsOrderSchedulings.get(0);
            try {
                String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0020"));
                ev_meassage=ReceivingServices.xmlToJSON1(xmlResult);
jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js
@@ -67,6 +67,13 @@
    params: param
  })
}
export function changeBoxCode(param) {
  return request({
    url: '/bs/orderScheduling/changeBoxCode',
    method: 'get',
    params: param
  })
}
// 查询订单排产详细
export function getOrderScheduling(id) {
jcdm-ui/src/views/main/om/productionOrde/detail.vue
@@ -70,7 +70,14 @@
                    <span>{{ parseTime(scope.row.operateTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  fixed="right"
                  label="操作"
                  width="100">
                  <template slot-scope="scope">
                    <el-button @click="handleClick(scope.row)" type="text" size="small">更换箱体上线</el-button>
                  </template>
                </el-table-column>
              </el-table>
              <pagination
                v-show="total>0"
@@ -84,18 +91,51 @@
        </el-col>
      </el-row>
    </div>
    <el-dialog v-dialogpop-up :title="title" :visible.sync="changeBoxFlag" width="500px" append-to-body>
       <span slot="title">
        <i class="el-icon-s-order"></i>
        {{titleName}}
      </span>
      <el-form ref="changeFrom" inline  :model="changeFrom" label-width="80px">
        <el-form-item   label="发动机号" prop="sfcCode">
          <el-input disabled v-model="changeFrom.sfcCode" style="width: 370px"/>
        </el-form-item>
        <el-form-item   label="原箱体码" prop="boxCode">
          <el-input disabled v-model="changeFrom.boxCode" style="width: 370px"/>
        </el-form-item>
        <el-form-item  label="现箱体码" v-model="changeFrom.newBoxCode" prop="newBoxCode">
          <input v-model="changeFrom.newBoxCode"
                 ref="changeBoxInput"
                 style="height: 39px; width: 370px"
                 placeholder="请扫描箱体码"
          />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitFormForBoxCode">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { engineNoIsInModel, getSumDataMethod, listOrderScheduling3 } from "../../../../api/main/bs/orderScheduling/orderScheduling";
import { engineNoIsInModel, changeBoxCode, getSumDataMethod, listOrderScheduling3 } from "../../../../api/main/bs/orderScheduling/orderScheduling";
export default {
  name: 'Detail',
  props: ['singleSelect'],
  dicts: ['order_scheduling_produce_status','quality_status','print_status','material_type'],
  data(){
    return{
      title: '更换箱体',
      changeBoxFlag: false,
      titleName: '更换箱体',
      changeFrom: {
        boxCode: '',
        newBoxCode: '',
        sfcCode: ''
      },
      // 总条数
      total: 0,
      repairFlag:false,
@@ -115,8 +155,53 @@
    handleQuery(){
    },
    submitFormForBoxCode(){
      if (this.changeFrom.newBoxCode === '' || this.changeFrom.newBoxCode === null){
        this.$message.info("新箱体码不能为空")
      } else {
        changeBoxCode({sfcCode:this.changeFrom.sfcCode,newBoxCode:this.changeFrom.newBoxCode}).then(res => {
          console.log('res',res)
          if (res.code===200){
            this.$message({
              message:'操作成功',
              type:'success'
            })
            this.changeBoxFlag = false
            this.getListData()
            this.$refs.inputdata.focus()
          }else {
            this.$message({
              message:res.msg,
              type:'warning'
            })
          }
        })
      }
    },
    handleClick(row){
      console.log('row',row)
      this.changeBoxFlag = true
      this.changeFrom.sfcCode = row.engineNo
      this.changeFrom.boxCode = row.boxCode
      this.changeFrom.newBoxCode = ''
      this.$nextTick(()=>{
        this.$refs.changeBoxInput.focus()
      })
    },
    cancel(){
      this.changeBoxFlag = false
      this.$refs.inputdata.focus()
    },
    handleChangeBoxInput(event){
      const input = event.target
      const inputValue = input.value
      this.changeFrom.newBoxCode =  inputValue
    },
    refresh() {
      location.reload();
      this.$emit("reserveChild",null)
    },
    setFocus(){
      this.$nextTick(()=>{
@@ -173,9 +258,11 @@
    this.getListData()
    this.setFocus()
    this.$refs.inputdata.addEventListener('keydown',this.handleScannerInput)
    this.$refs.changeBoxInput.addEventListener('keydown',this.handleChangeBoxInput)
  },
  beforeDestroy() {
    this.$refs.inputdata.removeEventListener('keydown',this.handleScannerInput)
    this.$refs.changeBoxInput.removeEventListener('keydown',this.handleChangeBoxInput)
  }
}
</script>
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -41,7 +41,13 @@
    </el-form>
    <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px">
      <el-form-item label="机型" prop="typeZ">
        <el-input v-model="queryParams.typeZ" placeholder="请输入机型" clearable @keyup.enter.native="handleQuery"/>
        <el-select v-model="queryParams.typeZ" placeholder="请选择机型" clearable>
          <el-option
            v-for="dict in typeSelectList"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"/>
        </el-select>
      </el-form-item>
      <el-form-item label-width="130" label="发动机号" prop="engineNo">
        <el-input v-model="queryParams.engineNo" placeholder="请输入发动机号" clearable @keyup.enter.native="handleQuery"/>
@@ -51,16 +57,6 @@
    <el-card style="margin-top: 10px" class="box-card">
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['om:productionOrde:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
@@ -185,16 +181,13 @@
      </span>
      <el-form ref="form" inline :model="form" :rules="rules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="form.workOrderNo" placeholder="请输入生产订单" />
          <el-input v-model="form.workOrderNo" disabled placeholder="请输入生产订单" />
        </el-form-item>
        <el-form-item label="订单编号" prop="salesOrderCode">
          <el-input v-model="form.salesOrderCode" placeholder="请输入订单编号" />
        <el-form-item label="订单编号" prop="productionNotice">
          <el-input v-model="form.productionNotice" disabled placeholder="请输入订单编号" />
        </el-form-item>
        <el-form-item label="产品编号" prop="productCode">
          <el-input v-model="form.productCode" placeholder="请选择产品" >
            <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button>
          </el-input>
          <ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect>
          <el-input v-model="form.productCode" disabled placeholder="请输入产品编号" />
        </el-form-item>
        <el-form-item label="产品名称" prop="productName">
          <el-input v-model="form.productName" disabled placeholder="请输入产品名称" />
@@ -202,75 +195,17 @@
        <el-form-item label="种类" prop="productName">
          <el-input v-model="form.typeZ" disabled placeholder="请输入种类" />
        </el-form-item>
        <el-form-item label="实际数量" prop="actualQty">
          <el-input v-model="form.actualQty"  placeholder="请输入实际数量" />
        </el-form-item>
        <el-form-item label="车间编号" prop="workshopCode">
          <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="请选择车间编号">
        <el-form-item label="工单状态" prop="orderStatus">
          <el-select style="width: 93%" v-model="form.orderStatus" placeholder="请选择工单状态">
            <el-option
              v-for="item in options"
              :key="item.workshopCode"
              :label="item.workshopName"
              :value="item.workshopCode">
              v-for="item in statuOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item style="margin-left: -15px" label="产线编号" prop="lineCode">
          <el-select style="width: 93%" v-model="form.lineCode" placeholder="请选择产线编号">
            <el-option
              v-for="item in lineOptions"
              :key="item.lineCode"
              :label="item.lineName"
              :value="item.lineCode">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="工艺流程" prop="routeCode">
          <el-input v-model="form.routeCode" disabled placeholder="请输入工艺流程" />
        </el-form-item>
        <el-form-item label="产品BOM" prop="bomCode">
          <el-input v-model="form.bomCode" disabled placeholder="请输入产品BOM" />
        </el-form-item>
        <el-form-item label="工艺配方" prop="recipeCode">
          <el-input v-model="form.recipeCode" placeholder="请输入工艺配方" />
        </el-form-item>
        <el-form-item label="计划数量" prop="planQty">
          <el-input v-model="form.planQty" placeholder="请输入计划数量" />
        </el-form-item>
        <el-form-item label="需求日期" prop="demandDate">
          <el-date-picker style="width: 88%" clearable
            v-model="form.demandDate"
            type="date"
            value-format="yyyy-MM-dd"
            placeholder="请选择需求日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item style="margin-left: -30px" label="备注" prop="remarks">
          <el-input v-model="form.remarks" placeholder="请输入备注" />
        </el-form-item>
        <el-row>
          <el-col :span="12">
            <el-form-item style="margin-left: 10px" label-width="120" label="计划开始时间" prop="planStartTime">
              <el-date-picker clearable
                v-model="form.planStartTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择计划开始时间">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item style="margin-left: 76px" label-width="120" label="计划结束时间" prop="planEndTime">
              <el-date-picker clearable
                v-model="form.planEndTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择计划结束时间">
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -278,7 +213,7 @@
      </div>
    </el-dialog>
    <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="400px" append-to-body>
    <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="500px" append-to-body>
       <span slot="title">
        <i class="el-icon-s-order"></i>
        {{titleName}}
@@ -292,14 +227,14 @@
                          v-model="form.dateTime"
                          type="date"
                          value-format="yyyy-MM-dd"
                          placeholder="请选择日期" @input="handleCodeChange">
                          placeholder="请选择日期" @input="handleCodeChangeData">
          </el-date-picker>
        </el-form-item>
        <el-form-item class="hidden-form-item" label="日期规则" prop="dateTimeRule">
          <el-input v-model="form.dateTimeRule"/>
        </el-form-item>
        <el-form-item   label="起始编号" prop="startCode">
          <el-input type="number"   :maxlength="3"  :pattern="'[0-9]{3}'" v-model="form.startCode"  placeholder="请输入起始编号" @input="handleCodeChange"/>
          <el-input type="number"   :maxlength="3"  :pattern="'[0-9]{3}'" v-model="form.startCode"  placeholder="请输入起始编号" @input="handleCodeChangeStart"/>
        </el-form-item>
        <el-form-item   label="起止编号" prop="startEndCode">
          <el-input type="textarea" disabled v-model="form.startEndCode"/>
@@ -311,7 +246,7 @@
      </div>
    </el-dialog>
    </div>
    <Detail v-if="showDetailFlag" :singleSelect="singleSelect"></Detail>
    <Detail v-if="showDetailFlag" :singleSelect="singleSelect" @reserveChild = "reserveChild"></Detail>
  </div>
</template>
@@ -343,6 +278,27 @@
  },
  data() {
    return {
      statuOptions:[
        {
          label:"待下达",
          value:"1"
        },
        {
          label:"已下达",
          value:"2"
        }
      ],
      typeSelectList: [
        {
          label:"380",
          value:"380"
        },
        {
          label:"280",
          value:"280"
        }
      ],
      typeZDateRules: '',
      showDetailFlag: false,
      singleSelect:{},
      titleName: '',
@@ -431,12 +387,6 @@
        year: [
          { required: true, message: "不能为空", trigger: "blur" }
        ],
        dateTime: [
          { required: true, message: "不能为空", trigger: "blur" }
        ],
        startCode: [
          { required: true, message: "不能为空", trigger: "blur" }
        ],
      },
      change: {
        day: '',
@@ -478,22 +428,21 @@
    this.initWorkshop();
  },
  methods: {
    //日期或开始编号输入时
    handleCodeChange(data){
    reserveChild(){
      this.showDetailFlag = false
    },
    handleCodeChangeData(){
      console.log('1111111111111111')
      let dateTime = this.form.dateTime;
      let planQty = this.form.planQty;
      let startCode = this.form.startCode
      if(dateTime !== null && dateTime !== undefined
        && startCode !== null && startCode !== undefined) {
      let dateTimeRule = "";
      if(dateTime !== null && dateTime !== undefined){
        let dateTimes = dateTime.split("-");
        let year = dateTimes[0];
        let month = dateTimes[1];
        let day = dateTimes[2];
        let dictYear = this.dict.type.year;
        let dictMonth = this.dict.type.month;
        let startCode = this.form.startCode
        let dateTimeRule = "";
        //年
        for (let i = 0; i < dictYear.length; i++) {
          if (year === dictYear[i].label) {
@@ -512,10 +461,31 @@
        dateTimeRule = dateTimeRule + this.markNo;
        this.form.dateTimeRule = dateTimeRule;//此处赋值不加机型
        dateTimeRule = this.form.typeZ +" "+dateTimeRule;//此处加机型,顺序不能颠倒
        //赋值起始编码
        this.form.startEndCode =   dateTimeRule + String(parseInt(startCode)).padStart(3, '0') +"\n"+ dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ;
      }
      if (this.form.typeZ !== null && this.form.typeZ !== '' && dateTimeRule !== null && dateTimeRule !== '' ){
        this.typeZDateRules = dateTimeRule
        console.log('222222222222')
        let queryParams = {
          model: this.form.typeZ,
          modelDate: this.form.dateTimeRule,
        }
        listModelNumber(queryParams).then(response => {
          if(response.rows.length === 0){
            this.form.startCode = 1
          }else {
            let max = response.rows[0].maxnumValue
            this.form.startCode = parseInt(max) + 1
          }
          this.form.startEndCode =   this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ;
          });
      }
    },
    handleCodeChangeStart(){
      let planQty = this.form.planQty;
      console.log('planQty',planQty)
      //赋值起始编码
      this.form.startEndCode =   this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ;
    },
    getProductionNotice(){
@@ -743,8 +713,15 @@
          console.log(response.data.productCode)
          this.materialQueryParams.materialCode = response.data.productCode;
          listMaterial(this.materialQueryParams).then(response => {
            this.markNo = response.rows[0].mark
            this.form.typeL = response.rows[0].typeL;
            console.log("res2121",response)
            if (response.rows.length === 0){
              this.$message.error('未查找到物料编码对应编号!');
              this.cancel()
            } else {
              this.markNo = response.rows[0].mark
              this.form.typeL = response.rows[0].typeL;
            }
          });
          this.form = response.data;
          this.form.idNums=id;
@@ -790,16 +767,21 @@
    /** 生成箱体条码提交按钮 */
    submitFormForBoxCode() {
      if (this.form.startCode === null || this.form.startCode === ''){
        this.$message.error('起始编号不能为空!');
        return;
      }
      let startCode = parseInt(this.form.startCode);
      let queryParams = {
        model: this.form.typeZ,
        modelDate: this.form.dateTimeRule,
      }
      if(startCode>999){
        this.$message.error('起始编号超出最大范围,请输入1-999的数字!');
        return;
      }else if(startCode<1){
        this.$message.error('起始编号超出最小范围,请输入1-999的数字!');
        this.$message.error('请输入1-999的数字!');
        return;
      }
      listModelNumber(queryParams).then(response => {