hdy
2024-12-28 7737ed3ab344422b320289694dbcf4ade70a9d00
工单bom下发接口
已添加2个文件
已修改18个文件
271 ■■■■■ 文件已修改
billion-admin/src/main/resources/application-druid.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/RestfulAPI.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/OutPutParameters.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/OutPutParametersChild.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/domain/BsBomChildInfo.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/IBsBomChildInfoService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/IBsBomInfoService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomChildInfoServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomInfoServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/om/service/IOmProductionOrderInfoService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/om/service/impl/OmProductionOrderInfoServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/api/main/bs/bomInfo.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/utils/request.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/bs/bomChildInfo/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/bs/bomInfo/index.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-admin/src/main/resources/application-druid.yml
@@ -8,7 +8,11 @@
            master:
                url: jdbc:mysql://127.0.0.1:3306/billion-db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: root
                password: 123456
#            master:
#                url: jdbc:mysql://127.0.0.1:3306/billion-db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#                username: root
#                password: 123456
            # ä»Žåº“数据源
#            slave:
#                # ä»Žæ•°æ®æºå¼€å…³/默认关闭
billion-admin/src/main/resources/application.yml
@@ -16,7 +16,7 @@
# å¼€å‘环境配置
server:
  # æœåŠ¡å™¨çš„HTTP端口,默认为8080
  port: 8080
  port: 8081
  servlet:
    # åº”用的访问路径
    context-path: /
billion-main/src/main/java/com/billion/main/api/RestfulAPI.java
@@ -1,18 +1,97 @@
package com.billion.main.api;
import cn.hutool.core.collection.CollUtil;
import com.billion.main.api.domain.OutPutParameters;
import com.billion.main.api.domain.OutPutParametersChild;
import com.billion.main.api.domain.WorkOrdersInfo;
import com.billion.main.api.domain.WorkOrdersInfoChild;
import com.billion.main.bs.domain.BsBomChildInfo;
import com.billion.main.bs.domain.BsBomInfo;
import com.billion.main.bs.service.IBsBomChildInfoService;
import com.billion.main.bs.service.IBsBomInfoService;
import com.billion.main.om.domain.OmProductionOrderInfo;
import com.billion.main.om.service.IOmProductionOrderInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.ArrayList;
import java.util.List;
public class RestfulAPI {
    @Autowired
    private IOmProductionOrderInfoService OmProductionOrderInfoService;
    @Autowired
    private IBsBomInfoService bsBomInfoService;
    @Autowired
    private IBsBomChildInfoService bsBomChildInfoService;
    public static final String getQualityData = "IP地址/CollectQualityData";
    /**
     * æŽ¥æ”¶å·¥å•ä¿¡æ¯
     * 1、工厂MES调用接收工单接口,将工单信息发送给产线MES
     * 2、产线MES将接收到的工单信息存入到工单表和BOM表
     */
    @PostMapping("/receiveWorkOrdersInfo")
    public void receiveWorkOrdersInfo(@RequestBody WorkOrdersInfo param){
    public  OutPutParameters receiveWorkOrdersInfo(@RequestBody WorkOrdersInfo workOrdersInfo) {
        //保存参数
        List<OmProductionOrderInfo> productionOrderInfoList = new ArrayList<>();
        List<BsBomInfo> bomInfoList = new ArrayList<>();
        List<BsBomChildInfo> bomChildInfoList = new ArrayList<>();
        List<WorkOrdersInfoChild> data = workOrdersInfo.getData();
        for (WorkOrdersInfoChild workOrdersInfoChild : data) {
            OmProductionOrderInfo omProductionOrderInfo = new OmProductionOrderInfo();
            BsBomInfo bsBomInfo = new BsBomInfo();
            BsBomChildInfo bsBomChildInfo = new BsBomChildInfo();
            //保存工单信息
            omProductionOrderInfo.setWorkOrderNo(workOrdersInfo.getOrderNumber());
            omProductionOrderInfo.setSalesOrderCode(workOrdersInfo.getBatchNumber());
            omProductionOrderInfo.setProductCode(workOrdersInfo.getMaterialNumber());
            omProductionOrderInfo.setEngineTye(workOrdersInfo.getEngineType());
            omProductionOrderInfo.setEngineName(workOrdersInfo.getEngineName());
            omProductionOrderInfo.setPlanQty(Long.valueOf(workOrdersInfo.getProduction_Plan()));
            omProductionOrderInfo.setPlanStartTime(workOrdersInfo.getStartTime());
            omProductionOrderInfo.setRemarks(workOrdersInfo.getDescription());
            omProductionOrderInfo.setOrderStatus(workOrdersInfo.getState());
            omProductionOrderInfo.setFlag(workOrdersInfo.getFLAG());
            //保存BOM主表信息
            bsBomInfo.setBomCode(workOrdersInfo.getBomName());
            bsBomInfo.setBomName(workOrdersInfo.getBomName());
            bsBomInfo.setProductCode(workOrdersInfo.getMaterialNumber());
            bsBomInfo.setProductName(workOrdersInfo.getMaterialNumber());
            //保存BOM子表信息
            bsBomChildInfo.setProductCode(workOrdersInfo.getMaterialNumber());
            bsBomChildInfo.setProductName(workOrdersInfo.getMaterialNumber());
            bsBomChildInfo.setBomCode(workOrdersInfo.getBomName());
            bsBomChildInfo.setLocationCode(workOrdersInfoChild.getStationName());
            bsBomChildInfo.setLocationName(workOrdersInfoChild.getStationName());
            bsBomChildInfo.setMaterialCode(workOrdersInfoChild.getMaterial());
            bsBomChildInfo.setCostQty(workOrdersInfoChild.getCount());
            bsBomChildInfo.setChecked(workOrdersInfoChild.getChecked());
            bsBomChildInfo.setMaterialName(workOrdersInfoChild.getMaterialName());
            //
        }
        OutPutParameters outputParams = new OutPutParameters();
        //判断保存的三个list是否为空
        if (CollUtil.isNotEmpty(productionOrderInfoList) && CollUtil.isNotEmpty(bomInfoList) && CollUtil.isNotEmpty(bomChildInfoList)) {
            //插入数据库
            OmProductionOrderInfoService.insertBatch(productionOrderInfoList);
            bsBomInfoService.insertBatch(bomInfoList);
            bsBomChildInfoService.insertBatch(bomChildInfoList);
            //出参
            OutPutParametersChild child = new OutPutParametersChild(workOrdersInfo.getMaterialNumber(), "S", "采集完成");
            outputParams.addData(child);
        } else {
            OutPutParametersChild child = new OutPutParametersChild(workOrdersInfo.getMaterialNumber(), "F", "采集失败");
            outputParams.addData(child);
        }
        return outputParams;
    }
}
billion-main/src/main/java/com/billion/main/api/domain/OutPutParameters.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.billion.main.api.domain;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class OutPutParameters extends HashMap<String, Object>{
    private String code ="success";
    private String message = "API调用成功";
    private List<OutPutParametersChild> data;
    public OutPutParameters() {
        this.data = new ArrayList<>();
    }
    public void addData(OutPutParametersChild child) {
        this.data.add(child);
    }
    public String toJson() {
        StringBuilder json = new StringBuilder();
        json.append("{");
        // æ·»åŠ code和message(这里使用静态值,但通常您应该避免这样做)
        json.append("\"code\": \"").append(code).append("\",");
        json.append("\"message\": \"").append(message).append("\",");
        // æ·»åŠ data
        json.append("\"data\": [");
        boolean first = true;
        for (OutPutParametersChild child : data) {
            if (!first) {
                json.append(",");
            }
            first = false;
            json.append("{");
            json.append("\"productNum\": \"").append(child.getProductNum()).append("\",");
            json.append("\"resultCode\": \"").append(child.getResultCode()).append("\",");
            json.append("\"resultText\": \"").append(child.getResultText()).append("\"");
            json.append("}");
        }
        json.append("]");
        json.append("}");
        return json.toString();
    }
}
billion-main/src/main/java/com/billion/main/api/domain/OutPutParametersChild.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.billion.main.api.domain;
public class OutPutParametersChild {
    private String productNum;
    private String resultCode;
    private String resultText;
    public OutPutParametersChild(String productNum, String resultCode, String resultText) {
        this.productNum = productNum;
        this.resultCode = resultCode;
        this.resultText = resultText;
    }
    public String getProductNum() {
        return productNum;
    }
    public String getResultCode() {
        return resultCode;
    }
    public String getResultText() {
        return resultText;
    }
}
billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java
@@ -8,6 +8,18 @@
public class WorkOrdersInfo {
    private List<WorkOrdersInfoChild> childList;
    private String ProductionID;
    private String OrderNumber;
    private String BatchNumber;
    private String MaterialNumber;
    private String EngineType;
    private String EngineName;
    private String Production_Plan;
    private String StartTime;
    private String Description;
    private String State;
    private String FLAG;
    private String BomName;
    private List<WorkOrdersInfoChild> data;
}
billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java
@@ -4,5 +4,9 @@
@Data
public class WorkOrdersInfoChild {
    private String StationName;
    private String Material;
    private String Count;
    private String Checked;
    private String MaterialName;
}
billion-main/src/main/java/com/billion/main/bs/domain/BsBomChildInfo.java
@@ -63,5 +63,12 @@
    /** é€»è¾‘删除 */
    private String delFlag;
    /** æ˜¯å¦æ‰¹é‡æ‰«æ */
    @Excel(name = "是否批量扫描")
    private String checked;
    public void setCostQty(String count) {
    }
}
billion-main/src/main/java/com/billion/main/bs/service/IBsBomChildInfoService.java
@@ -60,4 +60,5 @@
     * @return ç»“æžœ
     */
    public int deleteBsBomChildInfoById(Long id);
    void insertBatch(List<BsBomChildInfo> confList);
}
billion-main/src/main/java/com/billion/main/bs/service/IBsBomInfoService.java
@@ -60,4 +60,6 @@
     * @return ç»“æžœ
     */
    public int deleteBsBomInfoById(Long id);
    void insertBatch(List<BsBomInfo> confList);
}
billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomChildInfoServiceImpl.java
@@ -92,4 +92,9 @@
    {
        return bsBomChildInfoMapper.deleteBsBomChildInfoById(id);
    }
    @Override
    public void insertBatch(List<BsBomChildInfo> confList) {
    }
}
billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomInfoServiceImpl.java
@@ -101,4 +101,9 @@
    {
        return bsBomInfoMapper.deleteBsBomInfoById(id);
    }
    @Override
    public void insertBatch(List<BsBomInfo> confList) {
    }
}
billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java
@@ -54,4 +54,18 @@
    @Excel(name = "备注")
    private String remarks;
    /** å‘动机型号 */
    @Excel(name = "发动机型号")
    private String engineTye;
    /** æœºåž‹ */
    @Excel(name = "机型")
    private String engineName;
    /** è®¢å•çŠ¶æ€ */
    @Excel(name = "订单状态")
    private String flag;
    public void setPlanStartTime(String startTime) {
    }
}
billion-main/src/main/java/com/billion/main/om/service/IOmProductionOrderInfoService.java
@@ -60,4 +60,6 @@
     * @return ç»“æžœ
     */
    public int deleteOmProductionOrderInfoById(Long id);
    void insertBatch(List<OmProductionOrderInfo> confList);
}
billion-main/src/main/java/com/billion/main/om/service/impl/OmProductionOrderInfoServiceImpl.java
@@ -123,4 +123,9 @@
    {
        return OmProductionOrderInfoMapper.deleteOmProductionOrderInfoById(id);
    }
    @Override
    public void insertBatch(List<OmProductionOrderInfo> confList) {
    }
}
billion-ui/src/api/main/bs/bomInfo.js
@@ -35,6 +35,7 @@
  })
}
// åˆ é™¤åŸºç¡€BOM
export function delBomInfo(id) {
  return request({
billion-ui/src/utils/request.js
@@ -15,7 +15,7 @@
// åˆ›å»ºaxios实例
const service = axios.create({
  // axios中请求配置有baseURL选项,表示请求URL公共部分
  baseURL: `http://192.168.20.9:8080`,
  baseURL: `http://127.0.0.1:8081`,
  // è¶…æ—¶
  timeout: 10000
})
billion-ui/src/views/main/bs/bomChildInfo/index.vue
@@ -46,7 +46,6 @@
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-card style="margin-top: 10px" class="box-card">
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
@@ -138,7 +137,6 @@
    <el-empty v-else>
      <span slot="description">暂无数据</span>
    </el-empty>
    </el-card>
    <pagination
      v-show="total>0"
billion-ui/src/views/main/bs/bomInfo/index.vue
@@ -74,6 +74,16 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          plain
          icon="el-icon-setting"
          size="mini"
          :disabled="multiple"
          @click="statusChange"
          v-hasPermi="['bs:bomInfo:remove']"
        >状态变更</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
@@ -128,7 +138,7 @@
        <el-form-item label="产品名称" prop="productName">
          <el-input v-model="form.productName" placeholder="请输入产品名称" />
        </el-form-item>
        <el-form-item label="工单状态" prop="status">
        <el-form-item label="状态" prop="status">
          <el-radio-group v-model="form.status">
            <el-radio
              v-for="dict in dict.type.sys_normal_disable"
@@ -150,7 +160,7 @@
</template>
<script>
import { listBomInfo, getBomInfo, delBomInfo, addBomInfo, updateBomInfo } from "@/api/main/bs/bomInfo";
import { listBomInfo, getBomInfo, delBomInfo, addBomInfo, updateBomInfo,statusChange } from "@/api/main/bs/bomInfo";
export default {
  name: "BomInfo",
@@ -188,6 +198,7 @@
        createUser: null,
        updateUser: null,
        dataSource: null,
      },
      // è¡¨å•å‚æ•°
      form: {},
@@ -208,7 +219,6 @@
      this.loading = true;
      listBomInfo(this.queryParams).then(response => {
        this.bomInfoList = response.rows;
        console.log(this.bomInfoList)
        this.total = response.total;
        this.loading = false;
@@ -270,6 +280,33 @@
        this.open = true;
        this.title = "修改基础BOM";
      });
  console.log(this.from.status)
    },
    /** çŠ¶æ€å˜æ›´æŒ‰é’®æ“ä½œ */
    statusChange(row) {
      this.reset();
      const id = row.id || this.ids
      getBomInfo(id).then(response => {
        this.form = response.data;
      });
      console.log(this.from)
      this.$refs["form"].validate(valid => {
        if(valid){
          if(this.from.status==='1'){
            this.from.status='0';
            updateBomInfo(this.form).then(response => {
              this.$modal.msgSuccess("停用成功");
              this.getList();
            });
          }else{
            this.from.status='1';
            updateBomInfo(this.form).then(response => {
              this.$modal.msgSuccess("启用成功");
              this.getList();
            });
          }
        }
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
billion-ui/vue.config.js
@@ -37,7 +37,7 @@
    proxy: {
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        target: `http://192.168.20.9:8080`,
        target: `http://127.0.0.1:8081`,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''