懒羊羊
2024-04-08 42cfe3f13b09d8b06935fb371fe327387292abc9
工单导入
已修改6个文件
224 ■■■■■ 文件已修改
jcdm-admin/src/main/resources/application-druid.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/om/productionOrde/productionOrde.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/index.vue 176 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-admin/src/main/resources/application-druid.yml
@@ -16,7 +16,8 @@
        druid:
            # 主库数据源
            master:
                url: jdbc:sqlserver://192.168.0.189:1433;DataBaseName=Jcdm042-Mes
#                url: jdbc:sqlserver://192.168.0.189:1433;DataBaseName=Jcdm042-Mes
                url: jdbc:sqlserver://183.134.244.158:1433;DataBaseName=Jcdm042-Mes
                username: sa
                password: JCDM@2023
            # 从库数据源
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -1,10 +1,16 @@
package com.jcdm.main.om.productionOrde.controller;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jcdm.common.core.domain.entity.SysUser;
import com.jcdm.common.core.domain.model.LoginUser;
import com.jcdm.common.utils.ServletUtils;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfoExcelImport;
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +28,7 @@
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/**
 * 生产工单Controller
@@ -114,4 +121,24 @@
    {
        return omProductionOrdeInfoService.upDownMove(omProductionOrdeInfo);
    }
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
    {
        ExcelUtil<OmProductionOrdeInfo> util = new ExcelUtil<OmProductionOrdeInfo>(OmProductionOrdeInfo.class);
        List<OmProductionOrdeInfo> ordeInfo = util.importExcel(file.getInputStream());
        for (OmProductionOrdeInfo omProductionOrdeInfo : ordeInfo) {
            omProductionOrdeInfo.setCreateTime(new Date());
            omProductionOrdeInfo.setCreateBy("工厂MES");
        }
        omProductionOrdeInfoService.overrideSaveBatch(ordeInfo);
        return AjaxResult.success();
    }
    @PostMapping("/importTemplate")
    public void importTemplate(HttpServletResponse response)
    {
        ExcelUtil<OmProductionOrdeInfoExcelImport> util = new ExcelUtil<OmProductionOrdeInfoExcelImport>(OmProductionOrdeInfoExcelImport.class);
        util.importTemplateExcel(response, "订单数据");
    }
}
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java
@@ -63,4 +63,6 @@
    public int deleteOmProductionOrdeInfoById(Long id);
    AjaxResult upDownMove(OmProductionOrdeInfo omProductionOrdeInfo);
    void overrideSaveBatch(List<OmProductionOrdeInfo> omProductionOrdeInfoList);
}
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java
@@ -135,4 +135,13 @@
        omProductionOrdeInfoService.updateOmProductionOrdeInfo(currentOrdeInfos.get(0));
        return AjaxResult.success("移动成功");
    }
    @Override
    public void overrideSaveBatch(List<OmProductionOrdeInfo> omProductionOrdeInfoList) {
        try {
            this.saveBatch(omProductionOrdeInfoList);
        }catch (Exception e){
            return;
        }
    }
}
jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
@@ -17,6 +17,13 @@
  })
}
export function importTemplate() {
  return request({
    url: '/om/productionOrde/importTemplate',
    method: 'get',
  })
}
// 查询生产工单详细
export function getProductionOrde(id) {
  return request({
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -103,37 +103,23 @@
          @click="handleDelete"
          v-hasPermi="['om:productionOrde:remove']"
        >删除</el-button>
        <el-button
          type="info"
          icon="el-icon-upload2"
          size="mini"
          @click="handleImport"
        >导入</el-button>
      </el-col>
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="warning"-->
<!--          plain-->
<!--          icon="el-icon-download"-->
<!--          size="mini"-->
<!--          @click="handleExport"-->
<!--          v-hasPermi="['om:productionOrde:export']"-->
<!--        >导出</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="warning"-->
<!--          plain-->
<!--          icon="el-icon-upload2"-->
<!--          :disabled="move"-->
<!--          size="mini"-->
<!--          @click="moveUp(val => val, 'up')"-->
<!--        >上移</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="warning"-->
<!--          plain-->
<!--          icon="el-icon-download"-->
<!--          size="mini"-->
<!--          :disabled="move"-->
<!--          @click="moveUp(val => val, 'down')"-->
<!--        >下移</el-button>-->
<!--      </el-col>-->
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['om:productionOrde:export']"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
@@ -146,8 +132,8 @@
            </router-link>
          </template>
        </el-table-column>
        <el-table-column label="订单编号" width="140" align="center" prop="salesOrderCode">
        </el-table-column>
<!--        <el-table-column label="订单编号" width="140" align="center" prop="salesOrderCode">-->
<!--        </el-table-column>-->
        <el-table-column label="产品编号" width="110" align="center" prop="productCode">
        </el-table-column>
        <el-table-column label="产品名称" width="120" align="center" prop="productName">
@@ -161,8 +147,8 @@
            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
          </template>
        </el-table-column>
        <el-table-column label="工厂编号" align="center" prop="siteCode">
        </el-table-column>
<!--        <el-table-column label="工厂编号" align="center" prop="siteCode">-->
<!--        </el-table-column>-->
        <el-table-column label="工站编号" align="center" prop="stationCode">
        </el-table-column>
        <el-table-column label="报工信息结果" width="110" align="center" prop="resultText">
@@ -179,40 +165,6 @@
        </el-table-column>
        <el-table-column label="备注" width="100" align="center" prop="remarks">
        </el-table-column>
<!--        <el-table-column label="流水号" align="center" prop="streamNumber">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="客户" width="80" align="center" prop="custom">-->
<!--        </el-table-column>-->
<!--        <el-table-column fixed="right" width="350" label="操作" align="center" class-name="small-padding fixed-width">-->
<!--          <template slot-scope="scope">-->
<!--            &lt;!&ndash;  工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) &ndash;&gt;-->
<!--            <el-button type="success" :disabled="scope.row.orderStatus !== '1'"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">开始</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&&  scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">冻结</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">解冻</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">关闭</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">启用</el-button>-->
<!--&lt;!&ndash;            <el-button&ndash;&gt;-->
<!--&lt;!&ndash;              :disabled="scope.row.orderStatus !== '1'"&ndash;&gt;-->
<!--&lt;!&ndash;              size="mini"&ndash;&gt;-->
<!--&lt;!&ndash;              type="success"&ndash;&gt;-->
<!--&lt;!&ndash;              style="width: 72px"&ndash;&gt;-->
<!--&lt;!&ndash;              icon="el-icon-edit"&ndash;&gt;-->
<!--&lt;!&ndash;              @click="handleUpdate(scope.row)"&ndash;&gt;-->
<!--&lt;!&ndash;              v-hasPermi="['om:productionOrde:edit']"&ndash;&gt;-->
<!--&lt;!&ndash;            >修改</el-button>&ndash;&gt;-->
<!--&lt;!&ndash;            <el-button&ndash;&gt;-->
<!--&lt;!&ndash;              :disabled="scope.row.orderStatus !== '1'"&ndash;&gt;-->
<!--&lt;!&ndash;              size="mini"&ndash;&gt;-->
<!--&lt;!&ndash;              type="warning"&ndash;&gt;-->
<!--&lt;!&ndash;              style="width: 72px"&ndash;&gt;-->
<!--&lt;!&ndash;              icon="el-icon-delete"&ndash;&gt;-->
<!--&lt;!&ndash;              @click="handleDelete(scope.row)"&ndash;&gt;-->
<!--&lt;!&ndash;              v-hasPermi="['om:productionOrde:remove']"&ndash;&gt;-->
<!--&lt;!&ndash;            >删除</el-button>&ndash;&gt;-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">完成</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">已完工</el-button>            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">启用</el-button>-->
<!--          </template>-->
<!--        </el-table-column>-->
      </el-table>
    </el-card>
@@ -267,16 +219,48 @@
      </div>
    </el-dialog>
    <!-- 用户导入对话框 -->
    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px">
      <el-upload
        ref="upload"
        :limit="1"
        accept=".xlsx, .xls"
        :headers="upload.headers"
        :action="upload.url + '?updateSupport=' + upload.updateSupport"
        :disabled="upload.isUploading"
        :on-progress="handleFileUploadProgress"
        :on-success="handleFileSuccess"
        :auto-upload="false"
        drag
      >
        <i class="el-icon-upload"></i>
        <div class="el-upload__text">
          将文件拖到此处,或
          <em>点击上传</em>
        </div>
        <div class="el-upload__tip" slot="tip">
          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
        </div>
        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
      </el-upload>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitFileForm">确 定</el-button>
        <el-button @click="upload.open = false">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { getToken } from "@/utils/auth";
import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo";
import { listWorkshop } from "@/api/main/bs/workshop/workshop";
import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
import ItemSelect  from "@/components/itemSelect/single.vue";
import { upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
import { importTemplate, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
export default {
  name: "ProductionOrde",
@@ -355,7 +339,22 @@
        id: [
          { required: true, message: "ID不能为空", trigger: "blur" }
        ],
      }
      },
      // 用户导入参数
      upload: {
        // 是否显示弹出层(用户导入)
        open: false,
        // 弹出层标题(用户导入)
        title: "",
        // 是否禁用上传
        isUploading: false,
        // 是否更新已经存在的用户数据
        updateSupport: 0,
        // 设置上传的请求头部
        headers: { Authorization: "Bearer " + getToken() },
        // 上传的地址
        url: process.env.VUE_APP_BASE_API + "/om/productionOrde/importData"
      },
    };
  },
  created() {
@@ -363,18 +362,31 @@
    this.initWorkshop();
  },
  methods: {
    moveUp(row, val){
      console.log(val)
      const ids = row.id || this.ids
      let str = JSON.stringify(ids);
      let num = BigInt(str.replace(/[\[\]]/g, ''));
      this.queryParams.frontEndId = num
      this.queryParams.idNums = ids
      this.queryParams.flag = val
      upDownMove(this.queryParams).then(response => {
        this.$modal.msgSuccess("移动成功");
        this.getList();
      });
    /** 导入按钮操作 */
    handleImport() {
      this.upload.title = "订单信息导入";
      this.upload.open = true;
    },
    /** 下载模板操作 */
    importTemplate() {
      this.download('om/productionOrde/importTemplate', {
      }, `productionOrde_template_${new Date().getTime()}.xlsx`)
    },
// 文件上传中处理
    handleFileUploadProgress(event, file, fileList) {
      this.upload.isUploading = true;
    },
// 文件上传成功处理
    handleFileSuccess(response, file, fileList) {
      this.upload.open = false;
      this.upload.isUploading = false;
      this.$refs.upload.clearFiles();
      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
      this.getList();
    },
// 提交上传文件
    submitFileForm() {
      this.$refs.upload.submit();
    },
    initWorkshop(){
      listWorkshop(this.queryParams).then(response => {