春风项目四线(合箱线、总装线)
wujian
2024-08-18 8876c234904459d038a2b282b3fdc30e006f9925
fix8-气动打码
已修改22个文件
467 ■■■■■ 文件已修改
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java 4 ●●●● 补丁 | 查看 | 原始文档 | 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 2 ●●●●● 补丁 | 查看 | 原始文档 | 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 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/passingStationCollection/ProductNewPassStationMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/bs/material/index.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/bs/orderScheduling/index.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/followReport/index.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/followReport/report5.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/passingStationCollection/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/detail.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/index.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/rm/repairData/index.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java
@@ -217,11 +217,20 @@
            list = bsOrderSchedulingService.selectBsOrderSchedulingPage(bsOrderScheduling);
            if (CollUtil.isNotEmpty(list)){
                total = new PageInfo(list).getTotal();
                List<String> allEngineNoList = list.stream().map(BsOrderScheduling::getEngineNo).collect(Collectors.toList());
                List<ProductNewPassStation> productPassStationListByEngineList = productNewPassStationService.getProductPassStationListByEngineList(allEngineNoList);
                list.forEach(x -> {
                    if (StrUtil.isNotBlank(x.getWorkingHours())){
                        x.setWorkingHoursInt(Integer.parseInt(x.getWorkingHours()));
                    } else {
                        x.setWorkingHoursInt(0);
                    }
                    if (CollUtil.isNotEmpty(productPassStationListByEngineList)){
                        List<ProductNewPassStation> collect = productPassStationListByEngineList.stream().filter(y -> x.getEngineNo().equals(y.getSfcCode())).collect(Collectors.toList());
                        if (CollUtil.isNotEmpty(collect)){
                            ProductNewPassStation productNewPassStation = collect.get(0);
                            x.setBoxCode(productNewPassStation.getBoxCode());
                        }
                    }
                });
                list = list.stream().sorted(Comparator.comparing(BsOrderScheduling::getWorkingHoursInt)).collect(Collectors.toList());
@@ -461,10 +470,11 @@
                OrderScheduling.setProductionStatus("2");
                bsOrderSchedulingService.updateBsOrderScheduling(OrderScheduling);
                return R.ok();
            } else {
                return R.fail(500,"超出计划数量,请检查后重试");
            }
        }
        return R.ok();
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java
@@ -53,6 +53,10 @@
    @TableField(exist = false)
    @ExcelIgnore
    private String boxCode;
    @TableField(exist = false)
    @ExcelIgnore
    private List<String> engineNoListExcel;
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/mapper/ProductNewPassStationMapper.java
@@ -21,6 +21,7 @@
    public ProductNewPassStation getPassStation(ProductNewPassStation productNewPassStation);
    public List<ProductNewPassStation> getProductPassStationList(ProductNewPassStation productNewPassStation);
    public List<ProductNewPassStation> getProductPassStationListByEngineList(@Param("engineNoList") List<String> engineNoList);
    public void updatePassStationBySfcCode(String sfcCode);
    public void updatePassStationRodCodeBySfcCode(String sfcCode);
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/ProductNewPassStationService.java
@@ -2,6 +2,7 @@
import com.jcdm.main.da.passingStationCollection.domain.ProductNewPassStation;
import com.jcdm.main.da.tileMatchCollection.domain.ReceiveDataVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -16,6 +17,7 @@
    public ProductNewPassStation getPassStation(ProductNewPassStation productNewPassStation);
    public List<ProductNewPassStation> getProductPassStationList(ProductNewPassStation productNewPassStation);
    public List<ProductNewPassStation> getProductPassStationListByEngineList(List<String> engineNoList);
    public void updatePassStationBySfcCode(String sfcCode);
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/ProductNewPassStationServiceImpl.java
@@ -32,6 +32,11 @@
    }
    @Override
    public List<ProductNewPassStation> getProductPassStationListByEngineList(List<String> engineNoList) {
       return productNewPassStationMapper.getProductPassStationListByEngineList(engineNoList);
    }
    @Override
    public void updatePassStationBySfcCode(String sfcCode) {
        productNewPassStationMapper.updatePassStationBySfcCode(sfcCode);
    }
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -1,5 +1,7 @@
package com.jcdm.main.om.productionOrde.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
@@ -23,7 +25,9 @@
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import static org.apache.commons.lang3.SystemUtils.getUserName;
@@ -88,6 +92,21 @@
    @GetMapping("/ids/{ids}")
    public AjaxResult getInfo(@PathVariable Long[] ids)
    {
        List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrderListById(ids);
        if (CollUtil.isNotEmpty(omProductionOrdeInfos)){
            List<String> collect = omProductionOrdeInfos.stream().map(OmProductionOrdeInfo::getProductCode).distinct().collect(Collectors.toList());
            if (CollUtil.isNotEmpty(collect)){
                if (collect.size()>1){
                    return error("存在多个不同的产品编号,请检查");
                }
            }
            List<String> collect1 = omProductionOrdeInfos.stream().map(OmProductionOrdeInfo::getOrderStatus).distinct().collect(Collectors.toList());
            if (CollUtil.isNotEmpty(collect1)){
                if (collect1.size()>1){
                    return error("存在多个不同的工单状态,请检查");
                }
            }
        }
        return success(omProductionOrdeInfoService.selectOmProductionOrdeInfoByIds(ids));
    }
@@ -120,10 +139,34 @@
        String dateTimeRule = omProductionOrdeInfo.getDateTimeRule();
        //校验编号重复
        BsModelNumber bsModelNumberCheck = new BsModelNumber();
        bsModelNumberCheck.setModel(omProductionOrdeInfo.getTypeZ());
        bsModelNumberCheck.setModelDate(dateTimeRule);
        List<BsModelNumber> numbers = bsModelNumberService.selectBsModelNumberList(bsModelNumberCheck);
        BsModelNumber bsModelNumber = new BsModelNumber();
        Integer maxNum = 0;
        if (CollUtil.isNotEmpty(numbers)){
            bsModelNumber = numbers.get(0);
            String maxnumValue = bsModelNumber.getMaxnumValue();
            if (StrUtil.isNotBlank(maxnumValue)){
                maxNum = Integer.parseInt(maxnumValue);
            }
        }
        if (startCode<=maxNum){
            return AjaxResult.error("编号重复,请检查!");
        }
        Long[] id=omProductionOrdeInfo.getIdNums();
        OmProductionOrdeInfo ProductionOrde = new OmProductionOrdeInfo();
        for (int a=0;a<id.length;a++){
            ProductionOrde=omProductionOrdeInfoService.selectOmProductionOrdeInfoById(id[a]);
        List<OmProductionOrdeInfo> omProductionOrdeInfoList = omProductionOrdeInfoService.selectOmProductionOrderListById(id);
        if (CollUtil.isNotEmpty(omProductionOrdeInfoList)){
            omProductionOrdeInfoList.forEach(x -> {
                if (ObjectUtil.isNotNull(x.getWorkOrderNo())){
                    long l = Long.parseLong(x.getWorkOrderNo());
                    x.setWorkOrderNoLong(l);
                }
            });
            List<OmProductionOrdeInfo> sortList = omProductionOrdeInfoList.stream().sorted(Comparator.comparing(OmProductionOrdeInfo::getWorkOrderNoLong)).collect(Collectors.toList());
            for (OmProductionOrdeInfo ProductionOrde : sortList) {
            Integer planQty = Math.toIntExact(ProductionOrde.getPlanQty());//计划数量
            if(planQty>0) {
                for (int i = 0; i < planQty; i++) {
@@ -146,14 +189,22 @@
            ProductionOrde.setOrderStatus("2");
            omProductionOrdeInfoService.updateOmProductionOrdeInfo(ProductionOrde);
        }
        }
        //新增机型序号
        BsModelNumber bsModelNumber = new BsModelNumber();
        bsModelNumber.setModel(omProductionOrdeInfo.getTypeZ());
        bsModelNumber.setModelDate(dateTimeRule);
        if (ObjectUtil.isNotNull(bsModelNumber.getId())){
        bsModelNumber.setMaxnumValue((startCode - 1) + "");
        bsModelNumber.setSaveTime(fomateDate);
        bsModelNumber.setLastNumber((startCode - 1) + "");
        bsModelNumberService.insertBsModelNumber(bsModelNumber);
            bsModelNumberService.updateBsModelNumber(bsModelNumber);
        } else {
            BsModelNumber bsModelNumberSave = new BsModelNumber();
            bsModelNumberSave.setModel(omProductionOrdeInfo.getTypeZ());
            bsModelNumberSave.setModelDate(dateTimeRule);
            bsModelNumberSave.setMaxnumValue((startCode - 1) + "");
            bsModelNumberSave.setSaveTime(fomateDate);
            bsModelNumberSave.setLastNumber((startCode - 1) + "");
            bsModelNumberService.insertBsModelNumber(bsModelNumberSave);
        }
        return toAjax(1);
    }
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java
@@ -1,8 +1,10 @@
package com.jcdm.main.om.productionOrde.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@@ -14,6 +16,7 @@
 * @author ruimin
 * @date 2023-12-11
 */
@Data
public class OmProductionOrdeInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
@@ -21,64 +24,92 @@
    /** ID */
    private Long id;
    @Excel(name = "生产通知单")
    private String productionNotice;
    /** 生产工单号 */
    @Excel(name = "生产工单号")
    @Excel(name = "生产订单")
    private String workOrderNo;
    /** 订单编号 */
    @Excel(name = "订单编号")
    private String salesOrderCode;
    @TableField(exist = false)
    private Long workOrderNoLong;
    /** 产品编号 */
    @Excel(name = "产品编号")
    private String productCode;
    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;
    /** 车间编号 */
    @Excel(name = "车间编号")
    private String workshopCode;
    /** 产线编号 */
    @Excel(name = "产线编号")
    private String lineCode;
    /** 工艺流程 */
    @Excel(name = "工艺流程")
    private String routeCode;
    /** 产品BOM */
    @Excel(name = "产品BOM")
    private String bomCode;
    /** 工艺配方 */
    @Excel(name = "工艺配方")
    private String recipeCode;
    @Excel(name = "车型")
    private String typeZ;
    /** 计划数量 */
    @Excel(name = "计划数量")
    private Long planQty;
    /** 产品编号 */
    @Excel(name = "产品编号")
    private String productCode;
    /** 需求日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date demandDate;
    /** 工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) */
    @Excel(name = "工单状态", readConverterExp = "1=待下达,2=已下达,3=已完成")
    private String orderStatus;
    /** 车间编号 */
    @Excel(name = "工厂编号")
    private String workshopCode;
    /** 创建人 */
    @Excel(name = "创建人")
    private String createUser;
    /** 产品名称 */
    @Excel(name = "成品描述")
    private String productName;
    /** 订单编号 */
    private String salesOrderCode;
    /** 产线编号 */
    private String lineCode;
    /** 工艺流程 */
    private String routeCode;
    /** 产品BOM */
    private String bomCode;
    /** 工艺配方 */
    private String recipeCode;
    /** 实际数量 */
    @Excel(name = "实际数量")
    private Long actualQty;
    /** 不良数量 */
    @Excel(name = "不良数量")
    private Long badQty;
    /** 报废数量 */
    @Excel(name = "报废数量")
    private Long scrapQty;
    /** 返修数量 */
    @Excel(name = "返修数量")
    private Long repairQty;
    /** 实际上线数量 */
    @Excel(name = "实际上线数量")
    private Long actualOnlineQty;
    /** 上线完工标记 */
@@ -86,38 +117,26 @@
    private Long frontEndId;
    /** 需求日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "需求日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date demandDate;
    /** 计划开始时间 */
    @Excel(name = "计划开始时间")
    private String planStartTime;
    /** 计划结束时间 */
    @Excel(name = "计划结束时间")
    private String planEndTime;
    /** 实际开始时间 */
    @Excel(name = "实际开始时间")
    private String actualStartTime;
    /** 实际结束时间 */
    @Excel(name = "实际结束时间")
    private String actualEndTime;
    /** 顺序号 */
    @Excel(name = "顺序号")
    private Long serialNumber;
    /** 工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) */
    @Excel(name = "工单状态", readConverterExp = "1=创建、2已发布、3生产中、4已冻结、5已完工、6已关闭")
    private String orderStatus;
    /** 创建人 */
    @Excel(name = "创建人")
    private String createUser;
    /** 修改人 */
    @Excel(name = "修改人")
@@ -128,26 +147,20 @@
    private String remarks;
    /** 流水号 */
    @Excel(name = "流水号")
    private String streamNumber;
    /** 客户 */
    @Excel(name = "客户")
    private String custom;
    /** 市场区域编码 */
    @Excel(name = "市场区域编码")
    private String marketAreaCode;
    /** 软件版本编码 */
    @Excel(name = "软件版本编码")
    private String softwareVersionCode;
    /** 产品公司编码 */
    @Excel(name = "产品公司编码")
    private String productCompanyCode;
    @Excel(name = "种类")
    private String typeZ;
    private String typeL;
@@ -219,8 +232,7 @@
    }
    /** 生产通知单号 */
    @Excel(name = "生产通知单号")
    private String productionNotice;
    public String getProductionNotice() {
        return productionNotice;
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java
@@ -27,6 +27,7 @@
     * @return 生产工单
     */
    public OmProductionOrdeInfo selectOmProductionOrdeInfoByIds(Long[] ids);
    public List<OmProductionOrdeInfo> selectOmProductionOrderListById(Long[] ids);
    /**
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java
@@ -29,6 +29,9 @@
     */
    public OmProductionOrdeInfo selectOmProductionOrdeInfoByIds(Long[] ids);
    public List<OmProductionOrdeInfo> selectOmProductionOrderListById(Long[] ids);
    /**
     * 查询生产工单列表
     * 
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java
@@ -50,6 +50,13 @@
        return omProductionOrdeInfoMapper.selectOmProductionOrdeInfoByIds(ids);
    }
    @Override
    public List<OmProductionOrdeInfo> selectOmProductionOrderListById(Long[] ids)
    {
        return omProductionOrdeInfoMapper.selectOmProductionOrderListById(ids);
    }
    /**
     * 查询生产工单列表
     * 
jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java
@@ -69,4 +69,11 @@
    public static final String UN_FINISH = "0";
    public static final String FINISHED = "1";
    public static final String OP001_CODE_CHECK = "CFL4HX.OP001.CodeCheck";
    public static final String OP002_CODE_CHECK = "CFL4HX.OP002.CodeCheck";
    public static final String OP001_PRINT_REQUEST = "CFL4HX.OP001.PrintRequest";
    public static final String OP002_PRINT_REQUEST = "CFL4HX.OP002.PrintRequest";
    public static final String OP001_SAVE_REQUEST = "CFL4HX.OP001.SaveRequest";
    public static final String OP002_SAVE_REQUEST = "CFL4HX.OP002.SaveRequest";
}
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -269,7 +269,7 @@
                        if (!"280".equals(type) && !"380".equals(type)){
                            DaPassingStationCollection passCheck = new DaPassingStationCollection();
                            passCheck.setSfcCode(SNCode);
                            passCheck.setLocationCode("OP050");
                            passCheck.setLocationCode("OP060");
                            List<DaPassingStationCollection> passCheckList = passingStationCollectionServiceImpl.selectDaPassingStationCollectionList(passCheck);
                            if (CollUtil.isNotEmpty(passCheckList)){
                                //是否返修
jcdm-main/src/main/resources/mapper/da/passingStationCollection/ProductNewPassStationMapper.xml
@@ -88,6 +88,16 @@
            <if test="balanceCode != null">and balance_code = #{balanceCode}</if>
        </where>
    </select>
    <select id="getProductPassStationListByEngineList"
            resultMap="ProductNewPassStationResult">
        <include refid="selectProductNewPassStationVo"/>
            <where>
                sfc_code in
                <foreach collection="engineNoList" item="sfcCode" open="(" separator="," close=")">
                    #{sfcCode}
                </foreach>
            </where>
    </select>
</mapper>
jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml
@@ -243,4 +243,14 @@
    <select id="getMaxStreamNumber" resultType="Integer">
        SELECT MAX(stream_number) AS streamNumber FROM om_production_orde_info
    </select>
    <select id="selectOmProductionOrderListById"
            resultMap="OmProductionOrdeInfoResult">
        <include refid="selectOmProductionOrdeInfoVo"/>
            <where>
                id in
                <foreach item="id" collection="array" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </where>
    </select>
</mapper>
jcdm-ui/src/views/main/bs/material/index.vue
@@ -90,8 +90,8 @@
<!--      <el-table-column label="视图" align="center" prop="materialView" width="180">
      </el-table-column>-->
      <el-table-column label="车型" align="center" prop="carType" width="120">
      </el-table-column>
<!--      <el-table-column label="车型" align="center" prop="carType" width="120">-->
<!--      </el-table-column>-->
      <el-table-column label="物料类型" align="center" prop="typeL">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.material_type" :value="scope.row.typeL"/>
@@ -124,12 +124,12 @@
      </el-table-column>
      <el-table-column label="创建时间" align="center" prop="createTime" width="170">
      </el-table-column>
      <el-table-column label="更新人" align="center" prop="updateUser" width="150">
      </el-table-column>
      <el-table-column label="更新时间" align="center" prop="updateTime" width="170">
      </el-table-column>
      <el-table-column label="数据来源" align="center" prop="dataSource">
      </el-table-column>
<!--      <el-table-column label="更新人" align="center" prop="updateUser" width="150">-->
<!--      </el-table-column>-->
<!--      <el-table-column label="更新时间" align="center" prop="updateTime" width="170">-->
<!--      </el-table-column>-->
<!--      <el-table-column label="数据来源" align="center" prop="dataSource">-->
<!--      </el-table-column>-->
      <el-table-column fixed="right" label="操作" width="200" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
@@ -184,17 +184,17 @@
        <el-form-item label="物料名称" prop="materialName">
          <el-input v-model="form.materialName" placeholder="请输入物料名称" />
        </el-form-item>
        <el-form-item label="物料类型" prop="typeL">
          <!--          <el-input v-model="form.typeL" placeholder="请输入类型" />-->
          <el-select v-model="form.typeL"  placeholder="请选择单位" >
            <el-option
              v-for="dict in dict.type.material_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
<!--        <el-form-item label="物料类型" prop="typeL">-->
<!--          &lt;!&ndash;          <el-input v-model="form.typeL" placeholder="请输入类型" />&ndash;&gt;-->
<!--          <el-select v-model="form.typeL"  placeholder="请选择单位" >-->
<!--            <el-option-->
<!--              v-for="dict in dict.type.material_type"-->
<!--              :key="dict.value"-->
<!--              :label="dict.label"-->
<!--              :value="dict.value"-->
<!--            />-->
<!--          </el-select>-->
<!--        </el-form-item>-->
        <el-form-item label="物料型号" prop="typeZ">
          <el-input v-model="form.typeZ" placeholder="请输入种类" />
        </el-form-item>
@@ -300,12 +300,15 @@
        materialCode: [
          { required: true, message: "物料编码不能为空", trigger: "blur" }
        ],
        mark: [
          { required: true, message: "特殊代码不能为空", trigger: "blur" }
        ],
        materialName: [
          { required: true, message: "物料名称不能为空", trigger: "blur" }
        ],
        typeL: [
          { required: true, message: "类型不能为空", trigger: "blur" }
        ],
        // typeL: [
        //   { required: true, message: "类型不能为空", trigger: "blur" }
        // ],
      }
    };
  },
jcdm-ui/src/views/main/bs/orderScheduling/index.vue
@@ -191,9 +191,9 @@
              <dict-tag :options="dict.type.order_scheduling_produce_status" :value="scope.row.productionStatus"/>
            </template>
          </el-table-column>
          <el-table-column label="工时" align="center" prop="workingHours">
<!--          <el-table-column label="工时" align="center" prop="workingHours">-->
          </el-table-column>
<!--          </el-table-column>-->
          <el-table-column label="当前工位" align="center" prop="currentWorkstation">
          </el-table-column>
@@ -296,15 +296,17 @@
          <el-input v-model="form.model" placeholder="请输入机型" />
        </el-form-item>
        <el-form-item label="工时" prop="workingHours">
          <el-input v-model="form.workingHours" placeholder="请输入工时" />
        <el-form-item label="排序" prop="workingHours">
          <el-input v-model="form.workingHours" placeholder="请输入排序" />
        </el-form-item>
        <el-form-item label="当前工位" prop="currentWorkstation">
          <el-input v-model="form.currentWorkstation" placeholder="请输入当前工位" />
        </el-form-item>
        <el-form-item label="是否打印" prop="whetherOrPrint">
          <el-input v-model="form.whetherOrPrint" placeholder="请输入是否打印" />
          <el-input v-model="form.whetherOrPrint" placeholder="请输入是否打印" >
            <template></template>
          </el-input>
        </el-form-item>
        <el-form-item label="合箱报工" prop="report10">
@@ -320,13 +322,14 @@
          <el-input v-model="form.operator" placeholder="请输入操作人" />
        </el-form-item>
        <el-form-item label="状态" prop="status">
          <el-radio-group v-model="form.status">
<!--            <el-radio-->
<!--              v-for="dict in dict.type.${dictType}"-->
<!--              :key="dict.value"-->
<!--              :label="dict.value"-->
<!--            >{{dict.label}}</el-radio>-->
          </el-radio-group>
          <el-select v-model="form.status" placeholder="请选择">
            <el-option
              v-for="item in statusOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
      </el-form>
@@ -431,7 +434,20 @@
        }]
      },
      value1: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
      value2: ''
      value2: '',
      statusOptions: [
        {
          value: '1',
          label: '待生产'
        }, {
          value: '2',
          label: '生产中'
        },
        {
          value: '3',
          label: '已完成'
        }
      ]
    };
  },
  created() {
jcdm-ui/src/views/main/da/followReport/index.vue
@@ -56,10 +56,10 @@
                <dict-tag :options="dict.type.order_scheduling_produce_status" :value="scope.row.productionStatus"/>
              </template>
            </el-table-column>
            <el-table-column label="工时" align="center" prop="workingHours">
<!--            <el-table-column label="工时" align="center" prop="workingHours">-->
            </el-table-column>
            <el-table-column label="当前工位" align="center" prop="currentWorkstation">
<!--            </el-table-column>-->
            <el-table-column label="工位编号" align="center" prop="currentWorkstation">
            </el-table-column>
            <el-table-column label="质量状态" align="center" prop="qualityStatus">
@@ -187,7 +187,7 @@
    let workOrderNo = this.$route.query.workOrderNo;
    this.queryParams.orderNo = workOrderNo
    this.getMainList();
    this.getChildList();
    // this.getChildList();
  },
  methods: {
    toggleSelection(rows) {
@@ -238,7 +238,14 @@
    getMainList() {
      this.loading = true;
      console.log(this.queryParams)
      listOrderScheduling(this.queryParams).then(response => {
      let query = {
        pageNum: this.queryParams.pageNum,
        pageSize: this.queryParams.pageSize,
        orderNo: this.queryParams.orderNo,
        engineNo: this.queryParams.engineNo,
        engineNoList: [],
      }
      listOrderScheduling(query).then(response => {
        this.orderSchedulingList = response.rows;
        this.total = response.total;
        this.loading = false;
@@ -257,7 +264,7 @@
    },
    getList(){
      this.getMainList()
      this.getChildList()
      // this.getChildList()
    }
    // handleCurrentChange(val) {
    //   this.multipleSelection = val;
jcdm-ui/src/views/main/da/followReport/report5.vue
@@ -16,10 +16,10 @@
    </el-table-column>
    <el-table-column label="总成序列号" align="center" prop="sfcCode" width="160">
    </el-table-column>
    <el-table-column label="产品编号" align="center" prop="productCode" width="160">
    </el-table-column>
    <el-table-column label="产线编号" align="center" prop="productionLine" width="160">
    </el-table-column>
<!--    <el-table-column label="产品编号" align="center" prop="productCode" width="160">-->
<!--    </el-table-column>-->
<!--    <el-table-column label="产线编号" align="center" prop="productionLine" width="160">-->
<!--    </el-table-column>-->
    <el-table-column label="工位编号" align="center" prop="locationCode" width="100">
    </el-table-column>
    <el-table-column label="入站时间" align="center" prop="inboundTime" width="160">
@@ -42,8 +42,8 @@
        <span>{{ parseTime(scope.row.collectionTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
      </template>
    </el-table-column>
    <el-table-column label="节拍时间" align="center" prop="beatTime">
    </el-table-column>
<!--    <el-table-column label="节拍时间" align="center" prop="beatTime">-->
<!--    </el-table-column>-->
<!--    <el-table-column-->
<!--      type="index"-->
<!--      width="50">-->
jcdm-ui/src/views/main/da/passingStationCollection/index.vue
@@ -106,8 +106,8 @@
          <span>{{ parseTime(scope.row.collectionTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
        </template>
      </el-table-column>
      <el-table-column label="节拍时间" align="center" prop="beatTime">
      </el-table-column>
<!--      <el-table-column label="节拍时间" align="center" prop="beatTime">-->
<!--      </el-table-column>-->
      <el-table-column fixed="right" label="操作" width="200" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
@@ -195,9 +195,9 @@
            placeholder="请选择采集时间">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="节拍时间" prop="beatTime">
          <el-input v-model="form.beatTime" placeholder="请输入节拍时间" />
        </el-form-item>
<!--        <el-form-item label="节拍时间" prop="beatTime">-->
<!--          <el-input v-model="form.beatTime" placeholder="请输入节拍时间" />-->
<!--        </el-form-item>-->
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
jcdm-ui/src/views/main/om/productionOrde/detail.vue
@@ -17,7 +17,7 @@
      <el-row :gutter="0">
        <el-col :span="6">
          <div >
            <el-card style="height: 460px">
            <el-card style="height: 560px">
              <el-descriptions class="margin-top" :column="1" direction="horizontal">
                <el-descriptions-item label="生产订单">{{singleSelect.workOrderNo}}</el-descriptions-item>
                <el-descriptions-item label="机型" :span="2">{{singleSelect.typeZ}}</el-descriptions-item>
@@ -33,7 +33,7 @@
        </el-col>
        <el-col :span="18">
          <div>
            <el-card style="height: 460px; overflow: auto">
            <el-card style="height: 560px; overflow: auto">
              <el-table border :data="orderSchedulingList">
                <el-table-column
                  type="index"
@@ -45,6 +45,9 @@
                <el-table-column label="发动机号" align="center" prop="engineNo" width="150">
                </el-table-column>
                <el-table-column label="箱体码" align="center" prop="boxCode" width="250">
                </el-table-column>
                <el-table-column label="机型" align="center" prop="model">
                </el-table-column>
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -3,7 +3,7 @@
    <div v-if="!showDetailFlag">
    <el-card class="box-card">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label-width="100" label="生产通知单" prop="productName">
      <el-form-item label-width="100" label="生产通知单" prop="productionNotice">
        <el-input v-model="queryParams.productionNotice" placeholder="请输入生产通知单" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item label-width="100" label="工厂编号" prop="workshopCode">
@@ -76,7 +76,7 @@
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          :disabled="multiple"
          @click="handleUpdate"
          v-hasPermi="['om:productionOrde:edit']"
        >修改</el-button>
@@ -679,20 +679,43 @@
    },
    /** 多选框选中数据 */
    handleSelectionChange(selection) {
      console.log('this.single1111',this.single)
      console.log('selecion',selection)
      this.ids = selection.map(item => item.id)
      this.move = selection.length!==1
      if(!selection.length){
      if (selection.length >1){
        this.single = false
        this.multiple = true
      } else if (selection.length === 1){
        this.single = true
        this.multiple = false
      } else {
        this.single = true
        this.multiple = true
      }else {
        if(selection[0].orderStatus === '1' && selection.length === 1){
          this.single = false
          this.multiple = false
        }
        if(selection[0].orderStatus === '2' && selection.length === 1){
          this.singleSelect = selection[0]
        }
      }
      // let statusList = selection.filter(x => x.orderStatus === "1")
      // console.log('statusList',statusList)
      // if (selection.length === statusList.length){
      //   //待生成
      //   this.single = false
      // }
      // this.ids = selection.map(item => item.id)
      // this.move = selection.length!==1
      // if(!selection.length){
      //   console.log('1')
      //   this.single = true
      //   this.multiple = true
      // } else {
      //   if(selection[0].orderStatus === '1' && selection.length === 1){
      //     console.log('2')
      //     this.single = false
      //     this.multiple = false
      //   }
      //   if(selection[0].orderStatus === '2' && selection.length === 1){
      //     console.log('3',this.single)
      //     this.singleSelect = selection[0]
      //   }
      // }
    },
    /** 新增按钮操作 */
jcdm-ui/src/views/main/rm/repairData/index.vue
@@ -8,9 +8,9 @@
          </div>
          <div style="margin-left: 30%">
            <el-form :inline="true" :model="queryParams" class="myFrom" size="mini">
              <el-form-item label="返修标识">
                <el-input v-model="queryParams.repairIdentification" placeholder="返修标识"></el-input>
              </el-form-item>
<!--              <el-form-item label="返修标识">-->
<!--                <el-input v-model="queryParams.repairIdentification" placeholder="返修标识"></el-input>-->
<!--              </el-form-item>-->
              <el-form-item label="箱体编码">
                <el-input v-model="queryParams.boxCode" placeholder="箱体编码">
                </el-input>
@@ -37,9 +37,9 @@
              type="index"
              width="50"></el-table-column>
            <el-table-column type="selection" width="55" align="center" />
            <el-table-column label="返修标识" align="center" prop="repairIdentification" />
<!--            <el-table-column label="返修标识" align="center" prop="repairIdentification" />-->
            <el-table-column label="箱体编码" align="center" prop="boxCode" />
            <el-table-column label="工序编码" align="center" prop="processesCode" />
            <el-table-column label="工位编号" align="center" prop="processesCode" />
            <el-table-column label="原结果" align="center" prop="originalResult" />
            <el-table-column label="返修结果" align="center" prop="repairResults" />
            <el-table-column label="创建用户" align="center" prop="createUser" />
@@ -148,7 +148,7 @@
    let workOrderNo = this.$route.query.workOrderNo;
    this.queryParams.orderNo = workOrderNo
    this.getMainList();
    this.getChildList();
    // this.getChildList();
  },
  methods: {
    toggleSelection(rows) {
@@ -186,7 +186,7 @@
    //导出
    exportReport(){
      if (this.queryParams.engineNoListExcel.length === 0){
        this.$message.error("请勾选需要导出的数据")
        this.$message.info("请勾选需要导出的数据")
      }else {
        this.queryParams.engineNoList = []
        this.download('rm/repairRecord/exportRepair', {
@@ -199,7 +199,13 @@
    getMainList() {
      this.loading = true;
      console.log(this.queryParams)
      listRepairRecord(this.queryParams).then(response => {
      let query = {
        pageNum: this.queryParams.pageNum,
        pageSize: this.queryParams.pageSize,
        boxCode: this.queryParams.boxCode,
        engineNoList: [],
      }
      listRepairRecord(query).then(response => {
        this.orderSchedulingList = response.rows;
        this.total = response.total;
        this.loading = false;
@@ -218,7 +224,7 @@
    },
    getList(){
      this.getMainList()
      this.getChildList()
      // this.getChildList()
    }
    // handleCurrentChange(val) {
    //   this.multipleSelection = val;