wankeda
2025-05-26 0864509e1eb593c3dedb66196ec19fe51437922b
新增货位管理,PDA扫码生成任务烘烤出料,烘烤回炉,空托回流
已修改11个文件
已添加11个文件
已重命名1个文件
1324 ■■■■ 文件已修改
代码管理/NEWCode/WIDESEAWCS_Client/src/api/http.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Client/src/extension/system/Dt_Stationinfo.js 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Client/src/router/viewGird.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Client/src/views/system/Dt_Stationinfo.vue 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages.json 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages/index/index.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages/叫料/烘烤出料.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages/叫料/烘烤回炉.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages/叫料/空托回流.vue 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Core/Enums/LocationEnum.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/IDt_StationinfoRepository.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/IDt_StationinfoService.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskCZService.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Dt_Stationinfo.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/PDA/PDAController.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Dt_StationinfoController.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/Dt_StationinfoRepository.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Dt_StationinfoService.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/CommonAGVJob.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs 168 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Client/src/api/http.js
@@ -12,17 +12,17 @@
let loadingInstance;
let loadingStatus = false;
if (process.env.NODE_ENV == 'development') {
    axios.defaults.baseURL = 'http://192.168.12.235:9291/';
    // axios.defaults.baseURL = 'http://127.0.0.1:9291/';
    // axios.defaults.baseURL = 'http://192.168.12.235:9291/';
    axios.defaults.baseURL = 'http://127.0.0.1:9291/';
}
else if (process.env.NODE_ENV == 'debug') {
    axios.defaults.baseURL = 'http://192.168.12.235:8098/';
    // axios.defaults.baseURL = 'http://127.0.0.1:9291/';
    // axios.defaults.baseURL = 'http://192.168.12.235:8098/';
    axios.defaults.baseURL = 'http://127.0.0.1:9291/';
}
else if (process.env.NODE_ENV == 'production') {
    axios.defaults.baseURL = 'http://192.168.12.235:9291/';
    // axios.defaults.baseURL = 'http://127.0.0.1:9291/';
    // axios.defaults.baseURL = 'http://192.168.12.235:9291/';
    axios.defaults.baseURL = 'http://127.0.0.1:9291/';
}
if (!axios.defaults.baseURL.endsWith('/')) {
    axios.defaults.baseURL+="/";
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Client/src/extension/system/Dt_Stationinfo.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
//author:jxx
//此处是对表单的方法,组件,权限操作按钮等进行任意扩展(方法扩展可参照SellOrder.js)
let extension = {
    components: {//动态扩充组件或组件路径
        //表单header、content、footer对应位置扩充的组件
        gridHeader: '',//{ template: "<div>扩展组xxä»¶</div>" },
        gridBody: '',
        gridFooter: '',
        //弹出框(修改、编辑、查看)header、content、footer对应位置扩充的组件
        modelHeader: '',
        modelBody: '',
        modelFooter: ''
    },
    buttons: { view: [], box: [], detail: [] },//扩展的按钮
    methods: {//事件扩展
        onInit() {
            this.pagination.order = "asc";
            this.columns.forEach(row => {
                if (row.field == "stationCode") {
                    row.sort = true;
                } else if (row.field == "lastInTime") {
                    row.sort = true;
                }
                if (row.field == "getStatus") {
                    row.getColor = (row, column) => {
                        if (row.getStatus == -1) {
                            return "info";
                        } else if (row.getStatus == 0) {
                            return "success";
                        } else if (row.getStatus == 1) {
                            return "waring";
                        }
                    }
                } else if (row.field == "enable") {
                    row.getColor = (row, column) => {
                        if (row.enable == 1) {
                            return "success";
                        } else {
                            return "error";
                        }
                    }
                }
            })
            this.buttons.splice(1, 0, {
                name: "取消禁用",
                icon: 'md-refresh',
                type: 'primary',
                onClick: function () {
                    let rows = this.$refs.table.getSelected();
                    if (rows.length == 0) return this.$error("请选择要取消禁用的数据");
                    this.$confirm('确认要取消禁用吗?', '警告', {
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning',
                        center: true
                    }).then(() => {
                        let data = [];
                        let parm = {
                            "data": data,
                            "type": "1"
                        }
                        rows.forEach(t => data.push(t.id))
                        this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "取消禁用中...").then(x => {
                            if (x.status) {
                                this.$Message.success("取消禁用成功!");
                                this.refresh();
                            } else {
                                this.$Message.error(x.message);
                            }
                        })
                    });
                }
            })
            this.buttons.splice(1, 0, {
                name: "禁用",
                icon: 'md-refresh',
                type: 'danger',
                onClick: function () {
                    let rows = this.$refs.table.getSelected();
                    if (rows.length == 0) return this.$error("请选择要禁用的数据");
                    this.$confirm('确认要禁用吗?', '警告', {
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning',
                        center: true
                    }).then(() => {
                        let data = [];
                        let parm = {
                            "data": data,
                            "type": "0"
                        }
                        rows.forEach(t => data.push(t.id))
                        this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "锁定中...").then(x => {
                            if (x.status) {
                                this.$Message.success("禁用成功!");
                                this.refresh();
                            } else {
                                this.$Message.error(x.message);
                            }
                        })
                    });
                }
            })
        }
    }
};
export default extension;
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Client/src/router/viewGird.js
@@ -61,6 +61,10 @@
    path: '/router',
    name: 'router',
    component: () => import('@/views/basicinfo/router.vue')
  }, {
    path: '/Dt_Stationinfo',
    name: 'Dt_Stationinfo',
    component: () => import('@/views/system/Dt_Stationinfo.vue')
  }]
export default viewgird
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Client/src/views/system/Dt_Stationinfo.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/system/system/Base_routing_table.js此处编写
 -->
<template>
  <view-grid
    ref="grid"
    :columns="columns"
    :detail="detail"
    :editFormFields="editFormFields"
    :editFormOptions="editFormOptions"
    :searchFormFields="searchFormFields"
    :searchFormOptions="searchFormOptions"
    :table="table"
    :extend="extend"
  >
  </view-grid>
</template>
<script>
import extend from "@/extension/system/Dt_Stationinfo.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
  setup() {
    const table = ref({
      key: "id",
      footer: "Foots",
      cnName: "站点查询",
      name: "/Dt_Stationinfo",
      url: "/Dt_Stationinfo/",
      sortName: "id",
    });
    const editFormFields = ref({
      stationType: "",
      location_state: "",
      lastUpdateTime: "",
    });
    const editFormOptions = ref([
      [
        {
          title: "站点地址",
          required: true,
          field: "stationCode",
          type: "text",
          disabled: true,
        },
        {
          title: "物料类型",
          field: "stationType",
          type: "select",
          dataKey: "materieInfo",
        },
        {
          title: "缓存架状态",
          required: false,
          field: "location_state",
          type: "select",
          data: [
            { key: "0", value: "空拖" },
            { key: "1", value: "锁定" },
            { key: "2", value: "满拖" },
          ],
        },
      ],
      [
        {
          title: "备注",
          field: "remark",
          type: "text",
        },
        //  {
        //   title: "最后更新时间",
        //   field: "lastUpdateTime",
        //   type: "datetime",
        // },
      ],
    ]);
    const searchFormFields = ref({
      route_began: "",
      route_end: "",
      area: "",
    });
    const searchFormOptions = ref([
      [
        { title: "站点地址", field: "stationCode", type: "like" },
        {
          title: "区域",
          field: "area",
          type: "select",
          dataKey: "station_area",
        },
      ],
      [
        {
          title: "缓存架状态",
          field: "location_state",
          data: [
            { key: "0", value: "空拖" },
            { key: "1", value: "锁定" },
            { key: "2", value: "满拖" },
          ],
          type: "select",
        },
        {
          title: "是否启用",
          field: "enable",
          data: [
            { key: "true", value: "启用" },
            { key: "false", value: "禁用" },
          ],
          type: "select",
        },
        { title: "备注", field: "remark", type: "like" },
      ],
    ]);
    const columns = ref([
      {
        field: "id",
        title: "ID",
        type: "guid",
        width: 60,
        hidden: true,
        readonly: true,
        require: true,
        align: "left",
      },
      {
        field: "stationCode",
        title: "站点地址",
        type: "string",
        width: 110,
        require: true,
        align: "left",
      },
      {
        field: "area",
        title: "区域",
        type: "string",
        width: 80,
        align: "left",
        bind: { data: [] },
      },
      {
        field: "location_state",
        title: "缓存架状态",
        type: "string",
        width: 90,
        require: true,
        align: "left",
        bind: {
          key: "",
          data: [
            { key: "0", value: "空拖" },
            { key: "1", value: "锁定" },
            { key: "2", value: "满拖" },
          ],
        },
      },
      {
        field: "lastUpdateTime",
        title: "最后更新时间",
        type: "string",
        width: 120,
        align: "left",
        sort: true,
      },
      {
        field: "enable",
        title: "是否启用",
        type: "string",
        width: 60,
        align: "left",
        bind: {
          data: [
            { key: true, value: "启用" },
            { key: false, value: "禁用" },
          ],
        },
      },
      {
        field: "remark",
        title: "备注",
        type: "string",
        width: 100,
        align: "left",
      },
    ]);
    const detail = ref({
      cnName: "#detailCnName",
      columns: [],
      sortName: "",
      key: "",
    });
    return {
      table,
      extend,
      editFormFields,
      editFormOptions,
      searchFormFields,
      searchFormOptions,
      columns,
      detail,
    };
  },
});
</script>
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages.json
@@ -40,9 +40,23 @@
            }
        },
        {
            "path": "pages/叫料/输送线回流",
            "path": "pages/叫料/空托回流",
            "style": {
                "navigationBarTitleText": "输送线回流",
                "navigationBarTitleText": "空托回流",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/叫料/烘烤回炉",
            "style": {
                "navigationBarTitleText": "烘烤回炉",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/叫料/烘烤出料",
            "style": {
                "navigationBarTitleText": "烘烤出料",
                "enablePullDownRefresh": false
            }
        },
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/index/index.vue
@@ -28,8 +28,18 @@
                        image: "data:image/png;base64,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"
                    },
                    {
                        text: '三楼输送线回流',
                        url: 'pages/叫料/输送线回流',
                        text: '三楼空托回流',
                        url: 'pages/叫料/空托回流',
                        image: "data:image/png;base64,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"
                    },
                    {
                        text: '三楼烘烤出料',
                        url: 'pages/叫料/烘烤出料',
                        image: "data:image/png;base64,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"
                    },
                    {
                        text: '三楼烘烤回炉',
                        url: 'pages/叫料/烘烤回炉',
                        image: "data:image/png;base64,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"
                    },
                    // {
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/½ÐÁÏ/ºæ¿¾³öÁÏ.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
<template>
    <view>
        <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
        </uni-segmented-control>
        <view class="content">
            <view v-if="current === 0" class="headerstyle">
                <view class="itemstyle">
                    <uni-forms label-width="120">
                        <uni-forms-item label="烘烤出料编码">
                            <uni-easyinput type="text" :focus="!addressFocus" v-model="sourceAddress"
                                placeholder="请扫描烘烤编码" ref='midInput' @input="inputChangebarcode" />
                            </uni-easyinput>
                        </uni-forms-item>
                        <button @click="inbound" type="primary" size="default" style="margin-top: 2%;">搬运确认</button>
                        </uni-forms-item>
                    </uni-forms>
                </view>
            </view>
        </view>
        <u-toast ref="uToast" />
    </view>
</template>
<script>
    const innerAudioContext = uni.createInnerAudioContext();
    export default {
        data() {
            return {
                items: ['输送线搬运'],
                current: 0,
                label: "",
                focus: false,
                addressFocus: false,
                sourceAddress: "",
            }
        },
        methods: {
            voiceSpeech(src) {
                innerAudioContext.src = src; // '../../static/success.mp3';
                innerAudioContext.play();
            },
            onClickItem(e) {
                this.focus = false;
                this.addressFocus = false;
                if (this.current !== e.currentIndex) {
                    this.current = e.currentIndex;
                    if (this.current == 2) {
                        this.getData();
                    }
                }
            },
            inbound() {
                // æå–输入框的值
                const sourceAddress = this.sourceAddress;
                if (sourceAddress == "") {
                    this.$t.message.toast('请选择起点位置');
                    return;
                }
                // console.log(Exception);
                this.$u.post('/api/PDA/OutBoundTask', sourceAddress).then(res => {
                    this.$t.message.closeLoading();
                    if (res.code == 0) {
                        this.$t.message.toast('呼叫成功');
                        this.sourceAddress = "";
                            // this.$refs.popup.close();
                        // this.submit();
                    } else {
                        this.$t.message.toast(res.message);
                    }
                }).catch(err => {
                    this.$refs.uToast.show({
                        title: err.message,
                        type: "error"
                    })
                })
            },
            inputChangebarcode() {
                this.addressFocus = false;
                this.$nextTick(function(x) {
                    if (this.sourceAddress != '') {
                        this.addressFocus = true;
                    }
                })
            },
        }
    }
</script>
<style lang="scss">
    @import '@/common/uni-ui.scss';
    .content {
        display: flex;
        height: 150px;
    }
    .content-text {
        font-size: 14px;
        color: #666;
    }
    .itemstyle {
        margin-top: 30px;
        margin-left: 5%;
    }
    .headerstyle {
        width: 90%;
    }
</style>
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/½ÐÁÏ/ºæ¿¾»ØÂ¯.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
<template>
    <view>
        <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
        </uni-segmented-control>
        <view class="content">
            <view v-if="current === 0" class="headerstyle">
                <view class="itemstyle">
                    <uni-forms label-width="120">
                        <uni-forms-item label="起点缓存架地址">
                            <uni-easyinput type="text" :focus="!addressFocus" v-model="sourceAddress"
                                placeholder="请扫瞄起点地址" ref='midInput' @input="inputChangebarcode" />
                            <!-- <uni-data-select v-model="value" :localdata="rangs"></uni-data-select> -->
                        </uni-forms-item>
                        <uni-forms-item label="终点烘烤机上料地址">
                            <uni-easyinput type="text" :focus="!addressFocus" v-model="targetAddress"
                                placeholder="请扫描终点地址" ref='midInput' @input="inputChangebarcode" />
                        </uni-forms-item>
                        <button @click="inbound" type="primary" size="default" style="margin-top: 2%;">搬运确认</button>
                        </uni-forms-item>
                    </uni-forms>
                </view>
            </view>
        </view>
        <u-toast ref="uToast" />
    </view>
</template>
<script>
    const innerAudioContext = uni.createInnerAudioContext();
    export default {
        data() {
            return {
                items: ['输送线搬运'],
                current: 0,
                label: "",
                focus: false,
                addressFocus: false,
                sourceAddress: "",
                targetAddress: ","
            }
        },
        methods: {
            voiceSpeech(src) {
                innerAudioContext.src = src; // '../../static/success.mp3';
                innerAudioContext.play();
            },
            onClickItem(e) {
                this.focus = false;
                this.addressFocus = false;
                if (this.current !== e.currentIndex) {
                    this.current = e.currentIndex;
                    if (this.current == 2) {
                        this.getData();
                    }
                }
            },
            inbound() {
                // æå–输入框的值
                const sourceAddress = this.sourceAddress;
                const targetAddress = this.targetAddress;
                if (sourceAddress == "") {
                    this.$t.message.toast('请扫描起点位置');
                    return;
                }
                if (targetAddress == "") {
                    this.$t.message.toast('请扫描终点位置');
                    return;
                }
                var PostData = {
                    MainData: {
                        "sourceAddress": this.sourceAddress,
                        "targetAddress": this.targetAddress,
                    }
                }
                // console.log(Exception);
                this.$u.post('/api/PDA/OutBoundTasks', PostData).then(res => {
                    this.$t.message.closeLoading();
                    if (res.code == 0) {
                        this.$t.message.toast('呼叫成功');
                        this.sourceAddress = "";
                        this.targetAddress="";
                            // this.$refs.popup.close();
                        // this.submit();
                    } else {
                        this.$t.message.toast(res.message);
                    }
                }).catch(err => {
                    this.$refs.uToast.show({
                        title: err.message,
                        type: "error"
                    })
                })
            },
            inputChangebarcode() {
                this.addressFocus = false;
                this.$nextTick(function(x) {
                    if (this.sourceAddress != '') {
                        this.addressFocus = true;
                    }
                })
            },
        }
    }
</script>
<style lang="scss">
    @import '@/common/uni-ui.scss';
    .content {
        display: flex;
        height: 150px;
    }
    .content-text {
        font-size: 14px;
        color: #666;
    }
    .itemstyle {
        margin-top: 30px;
        margin-left: 5%;
    }
    .headerstyle {
        width: 90%;
    }
</style>
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/½ÐÁÏ/¿ÕÍлØÁ÷.vue
ÎļþÃû´Ó ´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/½ÐÁÏ/ÊäËÍÏß»ØÁ÷.vue ÐÞ¸Ä
@@ -6,22 +6,14 @@
            <view v-if="current === 0" class="headerstyle">
                <view class="itemstyle">
                    <uni-forms label-width="120">
                        <uni-forms-item label="起点地址">
                            <!-- <uni-easyinput type="text" :focus="!addressFocus" v-model="sourceAddress"
                                placeholder="请扫瞄起点地址" ref='midInput' @input="inputChangebarcode" /> -->
                            <uni-data-select v-model="value" :localdata="rangs"></uni-data-select>
                        <uni-forms-item label="起点缓存架地址">
                            <uni-easyinput type="text" :focus="!addressFocus" v-model="sourceAddress"
                                placeholder="请扫瞄起点地址" ref='midInput' @input="inputChangebarcode" />
                            <!-- <uni-data-select v-model="value" :localdata="rangs"></uni-data-select> -->
                        </uni-forms-item>
                        <uni-forms-item label="终点地址">
                        <uni-forms-item label="终点输送线地址">
                            <uni-easyinput type="text" :focus="!addressFocus" v-model="targetAddress"
                                placeholder="请扫描终点地址" ref='midInput' @input="inputChangebarcode" />
                        </uni-forms-item>
                        <uni-forms-item label="第一托盘条码">
                            <uni-easyinput type="text" :focus="!addressFocus" v-model="pallcode" placeholder="请扫描托盘条码"
                                ref='midInput' @input="inputChangebarcode" />
                        </uni-forms-item>
                        <uni-forms-item label="第二托盘条码">
                            <uni-easyinput type="text" :focus="!addressFocus" v-model="pallcode1" placeholder="请扫描托盘条码"
                                ref='midInput' @input="inputChangebarcode" />
                        </uni-forms-item>
                        <uni-forms-item>
                            <button @click="inbound" type="primary" size="default"
@@ -54,8 +46,6 @@
                addressFocus: false,
                targetAddress: "",
                sourceAddress: "",
                pallcode: "",
                pallcode1: "",
                Exception: "",
                address: "",
                check: true,
@@ -64,15 +54,6 @@
                value2: "",
                matTotals: [],
                value: 0,
                rangs: [{
                        value: "FJXL-KPHLX001",
                        text: "FJXL-KPHLX001"
                    },
                    {
                        value: "ZJXL-KPHLX001",
                        text: "ZJXL-KPHLX001"
                    },
                ],
                // range: [],
            }
        },
@@ -136,13 +117,9 @@
            },
            inbound() {
                // æå–输入框的值
                const sourceAddress = this.value;
                const sourceAddress = this.sourceAddress;
                const targetAddress = this.targetAddress;
                // æå–工单编号
                const pallcode =this.pallcode;
                // æå–型号
                const pallcode1 = this.pallcode1;
                if (sourceAddress == "") {
                    this.$t.message.toast('请选择起点位置');
                    return;
@@ -151,36 +128,25 @@
                    this.$t.message.toast('请扫瞄终点位置');
                    return;
                }
                // if (pallcode == "") {
                //     this.$t.message.toast('请扫描第一拖盘条码');
                //     return;
                // }
                // if (pallcode1 == "") {
                //     this.$t.message.toast('请扫描第二拖盘条码');
                //     return;
                // }
                var postData = {
                    MainData: {
                        "sourceAddress": this.value,
                        "sourceAddress": this.sourceAddress,
                        "targetAddress": this.targetAddress,
                        "Exception": this.pallcode + "," + this.pallcode1
                    }
                }
                // console.log(Exception);
                this.$u.post('/api/PDA/EmptyTask', postData).then(res => {
                this.$t.message.closeLoading();
                console.log(postData);
                if (res.code == 200) {
                    this.$t.message.toast('呼叫成功');
                    this.value="",
                    this.targetAddress="",
                    this.pallcode="",
                    this.pallcode1="",
                    this.$refs.popup.close();
                    // this.submit();
                } else {
                    this.$t.message.toast(res.message);
                }
                    this.$t.message.closeLoading();
                    console.log(postData);
                    if (res.code == 0) {
                        this.$t.message.toast('呼叫成功');
                        this.sourceAddress = "";
                            this.targetAddress = "";
                            // this.$refs.popup.close();
                        // this.submit();
                    } else {
                        this.$t.message.toast(res.message);
                    }
                }).catch(err => {
                    this.$refs.uToast.show({
                        title: err.message,
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Core/Enums/LocationEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEA_Core.Enums
{
    /// <summary>
    /// è´§ä½çŠ¶æ€
    /// </summary>
    public enum LocationStatusEnum
    {
        /// <summary>
        /// ç©ºé—²
        /// </summary>
        [Description("空闲")]
        Free = 0,
        /// <summary>
        /// é”å®š
        /// </summary>
        [Description("锁定")]
        Lock = 1,
        /// <summary>
        /// æœ‰è´§
        /// </summary>
        [Description("有货")]
        InStock = 2,
    }
    public enum EnableStatusEnum
    {
        /// <summary>
        /// æ­£å¸¸
        /// </summary>
        [Description("正常")]
        Normal = 0,
        /// <summary>
        /// ç¦ç”¨
        /// </summary>
        [Description("禁用")]
        Disable = 1
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/IDt_StationinfoRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_ISystemRepository
{
    public interface IDt_StationinfoRepository : IRepository<Dt_Stationinfo>
    {
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/IDt_StationinfoService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_ISystemServices
{
    public interface IDt_StationinfoService : IService<Dt_Stationinfo>
    {
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskCZService.cs
@@ -43,11 +43,24 @@
        /// <returns></returns>
        public Task<WebResponseContent> FinishTask(CZTaskFinshDto dto);
        /// <summary>
        /// è¾“送线回流
        /// ç©ºæ‰˜å›žæµ
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Task<WebResponseContent> EmptyTask(SaveModel saveModel);
        /// <summary>
        /// çƒ˜çƒ¤å‡ºæ–™
        /// </summary>
        /// <param name="OutBoundTask"></param>
        /// <returns></returns>
        public Task<WebResponseContent> OutBoundTask(string sourceAddress);
        /// <summary>
        /// çƒ˜çƒ¤å›žç‚‰
        /// </summary>
        /// <param name="OutBoundTask"></param>
        /// <returns></returns>
        public Task<WebResponseContent> OutBoundTasks(SaveModel saveModel);
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Dt_Stationinfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Magicodes.ExporterAndImporter.Core;
using SqlSugar;
using WIDESEAWCS_Core.DB.Models;
using WIDESEAWCS_Core.Tenants;
namespace WIDESEAWCS_Model.Models
{
    [SugarTable("Dt_Stationinfo", "站点信息"), MultiTenant]
    public class Dt_Stationinfo : BaseEntity
    {
        /// <summary>
        /// ä¸»é”®
        /// </summary>
        [ImporterHeader(Name = "主键")]
        [ExporterHeader(DisplayName = "主键")]
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public int id { get; set; }
        /// <summary>
        /// ç¼“存架编号
        /// </summary>
        [ImporterHeader(Name = "缓存架编号")]
        [ExporterHeader(DisplayName = "缓存架编号")]
        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "缓存架编号")]
        public string StationCode { get; set; }
        /// <summary>
        /// ç¼“存架状态
        /// </summary>
        [ImporterHeader(Name = "缓存架状态")]
        [ExporterHeader(DisplayName = "缓存架状态")]
        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "缓存架状态")]
        public int Location_state { get; set; }
        /// <summary>
        /// åŒºåŸŸ
        /// </summary>
        [ImporterHeader(Name = "区域")]
        [ExporterHeader(DisplayName = "区域")]
        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "区域")]
        public string Area { get; set; }
        /// <summary>
        /// æ˜¯å¦å¯ç”¨
        /// </summary>
        public bool Enable { get; set; }
        /// <summary>
        /// æœ€åŽæ”¾å…¥æˆ–取走时间
        /// </summary>
        [ImporterHeader(Name = "最后放入或取走时间")]
        [ExporterHeader(DisplayName = "最后放入或取走时间")]
        [SugarColumn(IsNullable = true, ColumnDescription = "最后放入或取走时间")]
        public DateTime? LastUpdateTime { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        [ImporterHeader(Name = "备注")]
        [ExporterHeader(DisplayName = "备注")]
        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "备注")]
        public string Remark { get; set; }
        /// <summary>
        /// åˆ›å»ºè€…
        /// </summary>
        [ImporterHeader(IsIgnore = true)]
        [ExporterHeader(DisplayName = "创建者")]
        [SugarColumn(IsNullable = false, Length = 50, IsOnlyIgnoreUpdate = true, ColumnDescription = "创建者")]
        public string Creater { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        [ImporterHeader(IsIgnore = true)]
        [ExporterHeader(DisplayName = "创建时间")]
        [SugarColumn(IsNullable = false, IsOnlyIgnoreUpdate = true, ColumnDescription = "创建时间")]
        public DateTime CreateDate { get; set; } = DateTime.Now;
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/PDA/PDAController.cs
@@ -49,5 +49,16 @@
        {
            return _taskCZService.EmptyTask(saveModel);
        }
        [HttpPost, Route("OutBoundTask"), AllowAnonymous]
        public Task<WebResponseContent> OutBoundTask([FromBody] string sourceAddress)
        {
            return _taskCZService.OutBoundTask(sourceAddress);
        }
        [HttpPost, Route("OutBoundTasks"), AllowAnonymous]
        public Task<WebResponseContent> OutBoundTasks([FromBody] SaveModel saveModel)
        {
            return _taskCZService.OutBoundTasks(saveModel);
        }
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Dt_StationinfoController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_Server.Controllers.System
{
    [Route("api/Dt_Stationinfo")]
    [ApiController]
    public class Dt_StationinfoController : ApiBaseController<IDt_StationinfoService, Dt_Stationinfo>
    {
        public Dt_StationinfoController(IDt_StationinfoService service) : base(service)
        {
        }
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/Dt_StationinfoRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_ISystemRepository;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_SystemRepository
{
    public class Dt_StationinfoRepository : RepositoryBase<Dt_Stationinfo>, IDt_StationinfoRepository
    {
        public Dt_StationinfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Dt_StationinfoService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ISystemRepository;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_SystemServices
{
    public class Dt_StationinfoService : ServiceBase<Dt_Stationinfo, IDt_StationinfoRepository>, IDt_StationinfoService
    {
        public Dt_StationinfoService(IDt_StationinfoRepository BaseDal) : base(BaseDal)
        {
        }
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs
@@ -26,18 +26,26 @@
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_ISystemRepository;
using WIDESEA_Common;
using WIDESEA_Core.Enums;
using SqlSugar.Extensions;
namespace WIDESEAWCS_TaskInfoService
{
    public class TaskCZService : ServiceBase<DtCZTask, ITaskCZRepository>, ITaskCZService
    {
        private readonly ITaskRepository _taskRepository;
        private readonly ITaskService _taskService;
        private readonly ITaskCZDetailsRepository _detailsRepository;
        private readonly IDt_StationinfoRepository _stationinfoRepository;
        public TaskCZService(ITaskCZRepository BaseDal, ITaskRepository taskRepository, ITaskCZDetailsRepository detailsRepository) : base(BaseDal)
        public TaskCZService(ITaskCZRepository BaseDal, IDt_StationinfoRepository stationinfoRepository, ITaskService taskService, ITaskRepository taskRepository, ITaskCZDetailsRepository detailsRepository) : base(BaseDal)
        {
            _taskRepository = taskRepository;
            _detailsRepository = detailsRepository;
            _taskService = taskService;
            _stationinfoRepository = stationinfoRepository;
        }
        public Task<WebResponseContent> AddTaskCZAsync(CZTaskDto dto)
@@ -165,7 +173,7 @@
        }
        /// <summary>
        /// è¾“送线回流
        /// ç©ºæ‰˜å›žæµ
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
@@ -174,23 +182,196 @@
            WebResponseContent webResponseContent = new WebResponseContent();
            try
            {
                //通过站点表判断缓存架是那个区域去那条输送线回流口。。。。。。。。。。。
                string Saddress = saveModel.MainData["sourceAddress"].ToString();
                string Taddress = saveModel.MainData["targetAddress"].ToString();
                string Exception = saveModel.MainData["Exception"].ToString();
                Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == Saddress && x.TaskState == (int)TaskInStatusEnum.InPending && x.TargetAddress == "WaitBind");
                if (task == null)
                Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == Saddress);
                if (task != null)
                {
                    webResponseContent.Error("任务不存在!");
                    webResponseContent.Error("此缓存架已存在任务!");
                    return Task.FromResult(webResponseContent);
                }
                task.TargetAddress = Taddress;
                task.ExceptionMessage = Exception;
                task.TaskState = (int)TaskInStatusEnum.InNew;
                var isTrue = _taskRepository.UpdateData(task);
                if (isTrue)
                Dt_Stationinfo Stationinfo = _stationinfoRepository.QueryFirst(x => x.StationCode == Saddress);
                Dt_Task dt_Task = new Dt_Task();
                dt_Task.TaskNum = _taskService.GetTaskNum();
                dt_Task.CreateDate = DateTime.Now;
                dt_Task.Creater = "system";
                dt_Task.CurrentAddress = Saddress;
                dt_Task.SourceAddress = Saddress;
                dt_Task.TaskState = (int)TaskInStatusEnum.InNew;
                dt_Task.TaskType = (int)TaskOutboundTypeEnum.Outbound;
                dt_Task.Grade = 1;
                dt_Task.PalletCode = "";
                if (Stationinfo.Area == "正极")
                {
                    webResponseContent.OK("任务下发成功!");
                    dt_Task.TargetAddress = "正极回流输送线入口";
                }
                else
                {
                    dt_Task.TargetAddress = "负极回流输送线入口";
                }
                dt_Task.NextAddress = dt_Task.TargetAddress;
                dt_Task.Barcode = "";
                dt_Task.Roadway = "AGV";
                dt_Task.WMSId = 0;
                dt_Task.Remark = "空托回流";
                Dt_Task dt_Tasks = new Dt_Task();
                dt_Tasks.TaskNum = _taskService.GetTaskNum();
                dt_Tasks.CreateDate = DateTime.Now;
                dt_Tasks.Creater = "system";
                if (Stationinfo.Area == "正极")
                {
                    dt_Task.CurrentAddress = "正极回流输送线出口";
                }
                else
                {
                    dt_Task.CurrentAddress = "负极回流输送线出口";
                }
                dt_Tasks.SourceAddress = dt_Task.CurrentAddress;
                dt_Tasks.TaskState = (int)TaskInStatusEnum.InPending;
                dt_Tasks.TaskType = (int)TaskOutboundTypeEnum.Outbound;
                dt_Tasks.Grade = 1;
                dt_Tasks.PalletCode = "";
                dt_Tasks.TargetAddress = Taddress;
                dt_Tasks.NextAddress = Taddress;
                dt_Tasks.Barcode = "";
                dt_Tasks.Roadway = "AGV";
                dt_Tasks.WMSId = 0;
                dt_Tasks.Remark = "空托回流";
                var isTrue = _taskRepository.AddData(dt_Task);
                var isTrue1 = _taskRepository.AddData(dt_Tasks);
                webResponseContent.OK("任务下发成功!");
            }
            catch (Exception ex)
            {
                webResponseContent.Error(ex.Message);
            }
            return Task.FromResult(webResponseContent);
        }
        /// <summary>
        /// çƒ˜çƒ¤å‡ºæ–™
        /// </summary>
        /// <param name="sourceAddress"></param>
        /// <returns></returns>
        public Task<WebResponseContent> OutBoundTask(string sourceAddress)
        {
            WebResponseContent webResponseContent = new WebResponseContent();
            try
            {
                Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == sourceAddress);
                if (task != null)
                {
                    webResponseContent.Error("起点已存在任务!");
                    return Task.FromResult(webResponseContent);
                }
                Dt_Stationinfo stationinfo = _stationinfoRepository.QueryFirst(x => x.Location_state == LocationStatusEnum.Free.ObjToInt());
                if (stationinfo == null)
                {
                    webResponseContent.Error("未找到空缓存架放置!");
                    return Task.FromResult(webResponseContent);
                }
                Dt_Task tasks = _taskRepository.QueryFirst(x => x.SourceAddress == stationinfo.StationCode || x.TargetAddress == stationinfo.StationCode);
                if (tasks != null)
                {
                    webResponseContent.Error("未找到可用缓存架");
                    return Task.FromResult(webResponseContent);
                }
                Dt_Task dt_Task = new Dt_Task()
                {
                    TaskNum = _taskService.GetTaskNum(),
                    CreateDate = DateTime.Now,
                    Creater = "system",
                    CurrentAddress = sourceAddress,
                    SourceAddress = sourceAddress,
                    TaskState = (int)TaskInStatusEnum.InNew,
                    TaskType = (int)TaskOutboundTypeEnum.Outbound,
                    Grade = 1,
                    PalletCode = "",
                    TargetAddress = stationinfo.StationCode,
                    NextAddress = stationinfo.StationCode,
                    Barcode = "",
                    Roadway = "AGV",
                    WMSId = 0,
                    Remark = "空托回流"
                };
                var isTrue = _taskRepository.AddData(dt_Task);
                webResponseContent.OK("任务下发成功!");
            }
            catch (Exception ex)
            {
                webResponseContent.Error(ex.Message);
            }
            return Task.FromResult(webResponseContent);
        }
        /// <summary>
        /// çƒ˜çƒ¤å›žç‚‰
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public Task<WebResponseContent> OutBoundTasks(SaveModel saveModel)
        {
            WebResponseContent webResponseContent = new WebResponseContent();
            try
            {
                //通过站点表判断缓存架是那个区域去那条输送线回流口。。。。。。。。。。。
                string Saddress = saveModel.MainData["sourceAddress"].ToString();
                string Taddress = saveModel.MainData["targetAddress"].ToString();
                Dt_Stationinfo Stationinfo = _stationinfoRepository.QueryFirst(x => x.StationCode == Saddress);
                Dt_Task dt_Task = new Dt_Task();
                dt_Task.TaskNum = _taskService.GetTaskNum();
                dt_Task.CreateDate = DateTime.Now;
                dt_Task.Creater = "system";
                dt_Task.CurrentAddress = Saddress;
                dt_Task.SourceAddress = Saddress;
                dt_Task.TaskState = (int)TaskInStatusEnum.InNew;
                dt_Task.TaskType = (int)TaskOutboundTypeEnum.Outbound;
                dt_Task.Grade = 1;
                dt_Task.PalletCode = "";
                if (Stationinfo.Area == "正极")
                {
                    dt_Task.TargetAddress = "正极回流输送线入口";
                }
                else
                {
                    dt_Task.TargetAddress = "负极回流输送线入口";
                }
                dt_Task.NextAddress = dt_Task.TargetAddress;
                dt_Task.Barcode = "";
                dt_Task.Roadway = "AGV";
                dt_Task.WMSId = 0;
                dt_Task.Remark = "烘烤回炉";
                Dt_Task dt_Tasks = new Dt_Task();
                dt_Tasks.TaskNum = _taskService.GetTaskNum();
                dt_Tasks.CreateDate = DateTime.Now;
                dt_Tasks.Creater = "system";
                if (Stationinfo.Area == "正极")
                {
                    dt_Task.CurrentAddress = "正极回流输送线出口";
                }
                else
                {
                    dt_Task.CurrentAddress = "负极回流输送线出口";
                }
                dt_Tasks.SourceAddress = dt_Task.CurrentAddress;
                dt_Tasks.TaskState = (int)TaskInStatusEnum.InPending;
                dt_Tasks.TaskType = (int)TaskOutboundTypeEnum.Outbound;
                dt_Tasks.Grade = 1;
                dt_Tasks.PalletCode = "";
                dt_Tasks.TargetAddress = Taddress;
                dt_Tasks.NextAddress = Taddress;
                dt_Tasks.Barcode = "";
                dt_Tasks.Roadway = "AGV";
                dt_Tasks.WMSId = 0;
                dt_Tasks.Remark = "烘烤回炉";
                var isTrue = _taskRepository.AddData(dt_Task);
                var isTrue1 = _taskRepository.AddData(dt_Tasks);
                webResponseContent.OK("任务下发成功!");
            }
            catch (Exception ex)
            {
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj
@@ -8,6 +8,7 @@
    <ItemGroup>
        <ProjectReference Include="..\WIDESEAWCS_BasicInfoService\WIDESEAWCS_BasicInfoService.csproj" />
        <ProjectReference Include="..\WIDESEAWCS_ISystemServices\WIDESEAWCS_ISystemServices.csproj" />
        <ProjectReference Include="..\WIDESEAWCS_ITaskInfoService\WIDESEAWCS_ITaskInfoService.csproj" />
    </ItemGroup>
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/CommonAGVJob.cs
@@ -26,8 +26,9 @@
        public Task Execute(IJobExecutionContext context)
        {
            AGV agv = (AGV)context.JobDetail.JobDataMap.Get("JobParams");
            SendTaskAGV.SendAGVTask(agv, _taskRepository);
            UpdateTaskAGV.UpdateTask(agv, _taskRepository, _taskCZRepository, _detailsRepository);
            //SendTaskAGV.SendAGVTask1(_taskRepository);
            //SendTaskAGV.SendAGVTask(agv, _taskRepository);
            //UpdateTaskAGV.UpdateTask(agv, _taskRepository, _taskCZRepository, _detailsRepository);
            return Task.CompletedTask;
        }
    }
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs
@@ -1,5 +1,6 @@
using System.Diagnostics;
using System.Text;
using Microsoft.Data.SqlClient;
using WIDESEAWCS_Common.AGVEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_ITaskInfoRepository;
@@ -14,157 +15,46 @@
        private static bool isTrue1 = false;
        private static string name1 = "";
        public static void SendAGVTask1(AGV agv, ITaskRepository _taskRepository)
        public static void SendAGVTask1(ITaskRepository _taskRepository)
        {
            //TODO: Implement sending task to AGV
            try
            {
                if (agv == null)
                {
                    return;
                }
                var taskInteractiveR = agv.DeviceProDTOs.Where(r => r.DeviceProParamName == TaskDBName.taskInteractiveR.ToString()).FirstOrDefault().DeviceProAddress;
                var taskInteractiveW = agv.DeviceProDTOs.Where(r => r.DeviceProParamName == TaskDBName.taskInteractiveW.ToString()).FirstOrDefault().DeviceProAddress;
                var resetTaskW = agv.DeviceProDTOs.Where(r => r.DeviceProParamName == TaskDBName.resetTaskInteractiveW.ToString()).FirstOrDefault().DeviceProAddress;
                var resetTaskInteractiveR = agv.DeviceProDTOs.Where(r => r.DeviceProParamName == TaskDBName.resetTaskInteractiveR.ToString()).FirstOrDefault().DeviceProAddress;
                var taskID = agv.DeviceProDTOs.Where(r => r.DeviceProParamName == TaskDBName.taskID.ToString()).FirstOrDefault().DeviceProAddress;
            // è¿žæŽ¥å­—符串 - æ ¹æ®ä½ çš„æœåŠ¡å™¨ä¿¡æ¯ä¿®æ”¹
            string connectionString = "Data Source=.;Initial Catalog=WIDESEAWCS_GanFengLiYeNew;User ID=sa;Password=sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
            List<Dt_Task> dt_Tasks = _taskRepository.QueryData(x => x.TaskState == (int)TaskInStatusEnum.InNew);
            foreach (Dt_Task task in dt_Tasks)
            {
                // è¦æ’入的SQL语句
                string insertSql = "INSERT INTO Dt_Stationinfo (StationCode, Location_state,Area,Enable,LastUpdateTime,Remark) VALUES (@StationCode, @Location_state,@Area,@Enable,@LastUpdateTime,@Remark)";
                int TaskInteractive = agv.Communicator.Read<int>(taskInteractiveR);//1收到
                int TaskInteractiveW = agv.Communicator.Read<int>(taskInteractiveW);//0初始/1下发/2取消/3更改
                int resetTaskInteractiveW = agv.Communicator.Read<int>(resetTaskW);
                int resetTaskInteractiver = agv.Communicator.Read<int>(resetTaskInteractiveR);
                if (isTrue1 && name1 == agv.DeviceName)
                try
                {
                    if (TaskInteractiveW != 0 || resetTaskInteractiveW != 0 || TaskInteractive != 0)
                    using (SqlConnection connection = new SqlConnection(connectionString))
                    {
                        agv.Communicator.Write(resetTaskW, 1);
                        Task.Delay(2000).Wait();
                        resetTaskInteractiveW = agv.Communicator.Read<int>(resetTaskW);
                        if (resetTaskInteractiveW == 1)
                        connection.Open();
                        using (SqlCommand command = new SqlCommand(insertSql, connection))
                        {
                            agv.Communicator.Write(resetTaskW, 0);
                            agv.Communicator.Write(taskInteractiveW, 0);
                            Task.Delay(2000).Wait();
                        }
                        return;
                    }
                    else
                    {
                        isTrue1 = false;
                        name1 = "";
                    }
                }
                if (resetTaskInteractiver == 1)
                {
                    agv.Communicator.Write(taskInteractiveW, 0);
                    for (int i = 0; i < 5; i++)
                    {
                        Thread.Sleep(300);
                        var agvnumber = Convert.ToInt32(agv.Communicator.Read<int>(taskInteractiveW));
                        if (agvnumber != 0)
                        {
                            agv.Communicator.Write(taskInteractiveW, 0);
                        }
                        else
                        {
                            break;
                            // æ·»åŠ å‚æ•°é˜²æ­¢SQL注入
                            command.Parameters.AddWithValue("StationCode", task.TaskNum);
                            command.Parameters.AddWithValue("Location_state", task.TaskNum);
                            command.Parameters.AddWithValue("Area", task.Roadway);
                            command.Parameters.AddWithValue("Enable", task.TaskNum);
                            command.Parameters.AddWithValue("LastUpdateTime", DateTime.Now);
                            command.Parameters.AddWithValue("Remark", task.Roadway);
                            command.Parameters.AddWithValue("Creater", "WCS");
                            command.Parameters.AddWithValue("CreateDate", DateTime.Now);
                            int rowsAffected = command.ExecuteNonQuery();
                            Console.WriteLine($"成功插入 {rowsAffected} è¡Œæ•°æ®");
                        }
                    }
                }
                if (0 == TaskInteractive && TaskInteractiveW == 0)
                catch (Exception ex)
                {
                    Dt_Task agvTask = _taskRepository.QueryData(r => r.TaskState == (int)TaskInStatusEnum.InNew && r.Roadway == agv.DeviceName && r.TaskType == (int)TaskOutboundTypeEnum.Outbound).OrderBy(r => r.CreateDate).OrderByDescending(r => r.Grade).FirstOrDefault();
                    if (null != agvTask)
                    {
                        //写入任务信息
                        string rel = TaskWrite(agv, agvTask, AGVJobEnum.newTaskEnum);
                        Thread.Sleep(1000);
                        string taskId = agv.Communicator.Read<string>(taskID).ToString();
                        if (taskId != agvTask.TaskNum.ToString())
                        {
                            isTrue1 = true;
                            name1 = agv.DeviceName;
                            //WriteLog.Info("SendAGVTask").Write("给AGV写入任务失败," + agvTask.agv_tasknum + DateTime.Now, "SendAGVTask");
                            throw new Exception(string.Format("给AGV写入任务失败,任务号{0}", agvTask.TaskNum));
                        }
                        if (string.IsNullOrEmpty(rel))
                        {
                            //写入任务确认1
                            agv.Communicator.Write(taskInteractiveW, 1);
                            Thread.Sleep(1000);
                            //读取AGV信号
                            int ReadTask_1_OK = agv.Communicator.Read<int>(taskInteractiveR);
                            if (ReadTask_1_OK == 1)
                            {
                                //写入WCS确认信号0
                                agv.Communicator.Write(taskInteractiveW, 0);
                                Thread.Sleep(2000);
                                //读取AGV信号是否为0
                                int ReadTask_0_OK = agv.Communicator.Read<int>(taskInteractiveR);
                                if (ReadTask_0_OK == 0)
                                {
                                    int nextStatus = agvTask.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                                    agvTask.TaskState = nextStatus;
                                    agvTask.Dispatchertime = DateTime.Now;
                                    _taskRepository.UpdateData(agvTask);
                                    // ä¸Šä¼ AGV运行数据 by xiaoyang
                                    //SendMESTask.SendMesTask(agvTask, 0);
                                }
                                else
                                {
                                    isTrue1 = true;
                                    name1 = agv.DeviceName;
                                    throw new Exception(string.Format("给AGV写入任务确认0失败,任务号{0}", agvTask.TaskNum));
                                }
                            }
                            else if (ReadTask_1_OK == 11)
                            {
                                agv.Communicator.Write(taskInteractiveW, 0);
                                Thread.Sleep(2000);
                                int ReadTask_0_Error = agv.Communicator.Read<int>(taskInteractiveR);
                                if (ReadTask_0_Error == 0)
                                {
                                    int nextStatus = agvTask.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
                                    agvTask.TaskState = nextStatus;
                                    agvTask.Dispatchertime = DateTime.Now;
                                    _taskRepository.UpdateData(agvTask);
                                }
                                else
                                {
                                    isTrue1 = true;
                                    name1 = agv.DeviceName;
                                    throw new Exception(string.Format("给AGV写入任务异常确认0失败,任务号{0}", agvTask.TaskNum));
                                }
                            }
                            else
                            {
                                isTrue1 = true;
                                name1 = agv.DeviceName;
                                throw new Exception(string.Format("给AGV写入任务确认1失败,任务号{0}", agvTask.TaskNum));
                            }
                        }
                        else
                        {
                            isTrue1 = true;
                            name1 = agv.DeviceName;
                            throw new Exception(string.Format("给AGV写入任务失败,任务号{0}" + rel, agvTask.TaskNum));
                        }
                    }
                    Console.WriteLine($"发生错误: {ex.Message}");
                }
            }
            catch (Exception ex)
            {
                StackTrace sta = new StackTrace(ex, true);
                StackTrace st = new StackTrace(new StackFrame(true));
                StackFrame sf = sta.GetFrame(0);
                //WriteLog.Info("SendAGVTask").Write(ex.Message + "行号" + sf.GetFileLineNumber(), "SendAGVTask");
            }
            finally
            {
                // WriteLog.Info("SendAGVTask").Write(agv.PLCName+"\t"+DateTime.Now, "SendAGVTask");
                Interlocked.Exchange(ref _readSendAGVTaskSignalso, 0);
            }
        }
        public static void SendAGVTask(AGV agv, ITaskRepository _taskRepository)
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -55,7 +55,6 @@
        }
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
@@ -81,7 +80,7 @@
                };
                // å¤„理实盘入库请求
                ProcessRequests(conveyorLine, requests, "下线请求入库");
                //ProcessRequests(conveyorLine, requests, "下线请求入库");
                // å¤„理空盘回流请求
                ProcessKpRequests(conveyorLine, requestsKP);
@@ -162,18 +161,22 @@
                Dt_Task task = null;
                if (isUpRequest)
                {
                    task = CreateTask(fromAdd, "WaitBind", "正极物流线002的上料请求", "空托盘", taskType);
                    List<Dt_Task> dt_Task = _taskRepository.QueryData(x => x.SourceAddress == fromAdd && x.TaskState == (int)TaskInStatusEnum.InPending);
                    if (dt_Task.Count < 0) { continue; }
                    var tasks = dt_Task.Where(x => x.SourceAddress == fromAdd).OrderBy(t => t.CreateDate).First();
                    tasks.TaskState = (int)TaskInStatusEnum.InNew;
                    _taskService.UpdateData(tasks);
                }
                else if (isGMRequest && isGMState == 1)
                {
                    task = CreateTask(fromAdd, "WaitBind", "正极物流线002的上料请求", "隔膜空托盘", taskType);
                }
                //else if (isGMRequest && isGMState == 1)
                //{
                //    task = CreateTask(fromAdd, "WaitBind", "正极物流线002的上料请求", "隔膜空托盘", taskType);
                //}
                // æ·»åŠ ä»»åŠ¡åˆ°ä»»åŠ¡è¡¨
                if (task != null)
                {
                    _taskRepository.AddData(task);
                }
                //// æ·»åŠ ä»»åŠ¡åˆ°ä»»åŠ¡è¡¨
                //if (task != null)
                //{
                //    _taskRepository.AddData(task);
                //}
            }
        }