feat():采购协同;

master
jiyufei 2 months ago
parent 8127ae087c
commit 13e6af9a80

@ -374,11 +374,22 @@ public class YysMaterialProcurementOrderServiceImpl extends ServiceImpl<YysMater
return "采购单信息为空";
}
String currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
List<YysMaterialProcurementOrderEntity> collect = form.getOrderData().stream().map(obj -> {
YysMaterialProcurementOrderEntity entity = BeanUtil.copyProperties(obj, YysMaterialProcurementOrderEntity.class);
List<YysMaterialProcurementOrderEntity> collect = form.getOrderData().stream().map(form1 -> {
String mainId = RandomUtil.uuId();
int index = 1;
String number = String.format("%03d" + "d", index);
String number = String.format("%03d", index);
YysMaterialProcurementOrderEntity entity = new YysMaterialProcurementOrderEntity();
entity.setOrderDate(DateUtil.getNowDate());
entity.setRequestDeliveryDate(new Date(Long.parseLong(form1.getRequestDeliveryDate())));
entity.setProcurementNumber(form1.getProcurementNumber());
entity.setSupplier(form1.getSupplier());
entity.setMaterialId(form1.getMaterialId());
entity.setMaterialCode(form1.getMaterialCode());
entity.setMaterialName(form1.getMaterialName());
entity.setMaterialName(form1.getMaterialName());
entity.setSpecification(form1.getSpecification());
entity.setOrderQuantity(form1.getOrderQuantity());
entity.setUnit(form1.getUnit());
entity.setId(mainId);
entity.setOrderNumber("PO" + currentDate + number);
entity.setCreatorTime(DateUtil.getNowDate());

@ -17,6 +17,7 @@ import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.*;
@ -83,6 +84,9 @@ public class YysMaterialProcurementOrderController {
@Autowired
private ConfigValueUtil configValueUtil;
@Resource
private YysSupplierInformationService yysSupplierInformationService;
/**
*
*
@ -94,9 +98,13 @@ public class YysMaterialProcurementOrderController {
public ActionResult list(@RequestBody YysMaterialProcurementOrderPagination yysMaterialProcurementOrderPagination) throws IOException {
List<YysMaterialProcurementOrderEntity> list = yysMaterialProcurementOrderService.getList(yysMaterialProcurementOrderPagination);
List<Map<String, Object>> realList = new ArrayList<>();
Map<String, String> collect = yysSupplierInformationService.list().stream().collect(Collectors.toMap(YysSupplierInformationEntity::getSupplierId, YysSupplierInformationEntity::getSupplierCname));
for (YysMaterialProcurementOrderEntity entity : list) {
Map<String, Object> yysMaterialProcurementOrderMap = JsonUtil.entityToMap(entity);
yysMaterialProcurementOrderMap.put("id", yysMaterialProcurementOrderMap.get("id"));
if (collect.containsKey(yysMaterialProcurementOrderMap.get("supplier").toString())) {
yysMaterialProcurementOrderMap.put("supplier", collect.get(yysMaterialProcurementOrderMap.get("supplier").toString()));
}
//副表数据
//子表数据
realList.add(yysMaterialProcurementOrderMap);

@ -5,81 +5,45 @@
<el-form @submit.native.prevent>
<el-col :span="6">
<el-form-item label="采购单号">
<el-input
v-model="query.orderNumber"
placeholder="请输入"
clearable
>
<el-input v-model="query.orderNumber" placeholder="请输入" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="采购计划单号">
<el-input
v-model="query.procurementNumber"
placeholder="请输入"
clearable
>
<el-input v-model="query.procurementNumber" placeholder="请输入" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="物料名称">
<el-input
v-model="query.materialName"
placeholder="请输入"
clearable
>
<el-input v-model="query.materialName" placeholder="请输入" clearable>
</el-input>
</el-form-item>
</el-col>
<template v-if="showAll">
<el-col :span="6">
<el-form-item label="供应商">
<el-input
v-model="query.supplier"
placeholder="请输入"
clearable
>
<el-input v-model="query.supplier" placeholder="请输入" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="单据状态">
<JnpfSelect
v-model="query.orderStatus"
placeholder="请选择"
clearable
:options="orderStatusOptions"
:props="orderStatusProps"
multiple
>
<JnpfSelect v-model="query.orderStatus" placeholder="请选择" clearable :options="orderStatusOptions"
:props="orderStatusProps" multiple>
</JnpfSelect>
</el-form-item>
</el-col>
</template>
<el-col :span="6">
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"
>查询</el-button
>
<el-button icon="el-icon-refresh-right" @click="reset()"
>重置</el-button
>
<el-button
type="text"
icon="el-icon-arrow-down"
@click="showAll = true"
v-if="!showAll"
>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
<el-button type="text" icon="el-icon-arrow-down" @click="showAll = true" v-if="!showAll">
展开
</el-button>
<el-button
type="text"
icon="el-icon-arrow-up"
@click="showAll = false"
v-else
>
<el-button type="text" icon="el-icon-arrow-up" @click="showAll = false" v-else>
收起
</el-button>
</el-form-item>
@ -89,213 +53,107 @@
<div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head">
<div>
<el-button
type="primary"
icon="icon-ym icon-ym-btn-add"
v-has="'btn_add'"
@click="addOrUpdateHandle()"
>新增
<el-button type="primary" icon="icon-ym icon-ym-btn-add" v-has="'btn_add'" @click="addOrUpdateHandle()">
</el-button>
<el-button
type="text"
icon="icon-ym icon-ym-btn-download"
@click="exportData()"
v-has="'btn_download'"
>导出
<el-button type="text" icon="icon-ym icon-ym-btn-download" @click="exportData()" v-has="'btn_download'">
</el-button>
</div>
<div class="JNPF-common-head-right">
<el-tooltip content="高级查询" placement="top" v-if="true">
<el-link
icon="icon-ym icon-ym-filter JNPF-common-head-icon"
:underline="false"
@click="openSuperQuery()"
/>
<el-link icon="icon-ym icon-ym-filter JNPF-common-head-icon" :underline="false"
@click="openSuperQuery()" />
</el-tooltip>
<el-tooltip
effect="dark"
:content="$t('common.refresh')"
placement="top"
>
<el-link
icon="icon-ym icon-ym-Refresh JNPF-common-head-icon"
:underline="false"
@click="initData()"
/>
<el-tooltip effect="dark" :content="$t('common.refresh')" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" @click="initData()" />
</el-tooltip>
</div>
</div>
<JNPF-table
v-loading="listLoading"
:data="list"
@sort-change="sortChange"
:span-method="arraySpanMethod"
>
<el-table-column prop="orderNumber" label="采购单号" align="left">
<JNPF-table v-loading="listLoading" :data="list" @sort-change="sortChange" :span-method="arraySpanMethod" border>
<el-table-column prop="orderNumber" label="采购单号" align="center" width="150">
</el-table-column>
<el-table-column prop="orderDate" label="单据日期" align="left">
<el-table-column prop="orderDate" label="单据日期" align="center"width="150">
</el-table-column>
<el-table-column
prop="procurementNumber"
label="采购计划单号"
align="left"
>
<el-table-column prop="procurementNumber" label="采购计划单号" align="center"width="150">
</el-table-column>
<el-table-column prop="supplier" label="供应商" align="left">
<el-table-column prop="supplier" label="供应商" align="center"width="150">
</el-table-column>
<el-table-column prop="materialCode" label="物料编码" align="left">
<el-table-column prop="materialCode" label="物料编码" align="center"width="150">
</el-table-column>
<el-table-column prop="materialName" label="物料名称" align="left">
<el-table-column prop="materialName" label="物料名称" align="center"width="150">
</el-table-column>
<el-table-column prop="specification" label="规格型号" align="left">
<el-table-column prop="specification" label="规格型号" align="center"width="150">
</el-table-column>
<el-table-column prop="orderQuantity" label="下单数量" align="left">
<el-table-column prop="orderQuantity" label="下单数量" align="center"width="150">
<template slot-scope="scope" v-if="scope.row.orderQuantity">
<JnpfNumber
v-model="scope.row.orderQuantity"
:thousands="false"
/>
<JnpfNumber v-model="scope.row.orderQuantity" :thousands="false" />
</template>
</el-table-column>
<el-table-column prop="unit" label="计量单位" align="left">
<el-table-column prop="unit" label="计量单位" align="center"width="150">
</el-table-column>
<el-table-column
prop="totalProductionQuantity"
label="总投产数量"
align="left"
>
<template
slot-scope="scope"
v-if="scope.row.totalProductionQuantity"
>
<JnpfNumber
v-model="scope.row.totalProductionQuantity"
:thousands="false"
/>
<el-table-column prop="totalProductionQuantity" label="总投产数量" align="center"width="150">
<template slot-scope="scope" v-if="scope.row.totalProductionQuantity">
<JnpfNumber v-model="scope.row.totalProductionQuantity" :thousands="false" />
</template>
</el-table-column>
<el-table-column
prop="totalSendQuantity"
label="总发货数量"
align="left"
>
<el-table-column prop="totalSendQuantity" label="总发货数量" align="center"width="150">
<template slot-scope="scope" v-if="scope.row.totalSendQuantity">
<JnpfNumber
v-model="scope.row.totalSendQuantity"
:thousands="false"
/>
<JnpfNumber v-model="scope.row.totalSendQuantity" :thousands="false" />
</template>
</el-table-column>
<el-table-column
prop="requestDeliveryDate"
label="要求到货日期"
align="left"
>
<el-table-column prop="requestDeliveryDate" label="要求到货日期" align="center"width="150">
</el-table-column>
<el-table-column
prop="delayedDeliveryDate"
label="延期交货日期"
align="left"
>
<el-table-column prop="delayedDeliveryDate" label="延期交货日期" align="center"width="150">
</el-table-column>
<el-table-column prop="delayReason" label="延期原因" align="left">
<el-table-column prop="delayReason" label="延期原因" align="center"width="150">
</el-table-column>
<el-table-column
prop="batchDeliveryDate"
label="分批发货日期"
align="left"
>
<el-table-column prop="batchDeliveryDate" label="分批发货日期" align="center"width="150">
</el-table-column>
<el-table-column
prop="batchShipmentQuantity"
label="分批发货数量"
align="left"
>
<el-table-column prop="batchShipmentQuantity" label="分批发货数量" align="center"width="150">
<template slot-scope="scope" v-if="scope.row.batchShipmentQuantity">
<JnpfNumber
v-model="scope.row.batchShipmentQuantity"
:thousands="false"
/>
<JnpfNumber v-model="scope.row.batchShipmentQuantity" :thousands="false" />
</template>
</el-table-column>
<el-table-column
prop="confirmQuantityReceived"
label="确认到货数量"
align="left"
>
<template
slot-scope="scope"
v-if="scope.row.confirmQuantityReceived"
>
<JnpfNumber
v-model="scope.row.confirmQuantityReceived"
:thousands="false"
/>
<el-table-column prop="confirmQuantityReceived" label="确认到货数量" align="center"width="150">
<template slot-scope="scope" v-if="scope.row.confirmQuantityReceived">
<JnpfNumber v-model="scope.row.confirmQuantityReceived" :thousands="false" />
</template>
</el-table-column>
<el-table-column label="单据状态" prop="orderStatus" algin="left">
<el-table-column label="单据状态" prop="orderStatus" align="center"width="150">
<template slot-scope="scope">
<el-tag v-if="scope.row.orderStatus == '未接单'" color="rgba(236, 128, 141, 1)" effect="dark"></el-tag>
<el-tag v-else-if="scope.row.orderStatus == ''" color="rgba(2, 167, 240, 1)" effect="dark">已接单</el-tag>
<el-tag v-else-if="scope.row.orderStatus == ''" color="rgba(245, 154, 35, 1)" effect="dark">缺货结单</el-tag>
<el-tag v-else-if="scope.row.orderStatus == ''" color="rgba(99, 161, 3, 1)" effect="dark">部分发货</el-tag>
<el-tag v-else-if="scope.row.orderStatus == ''" color="rgba(25, 169, 152, 1)" effect="dark">全部发货</el-tag>
<el-tag v-else-if="scope.row.orderStatus == ''" color="rgba(245, 154, 35, 1)"
effect="dark">缺货结单</el-tag>
<el-tag v-else-if="scope.row.orderStatus == ''" color="rgba(99, 161, 3, 1)"
effect="dark">部分发货</el-tag>
<el-tag v-else-if="scope.row.orderStatus == ''" color="rgba(25, 169, 152, 1)"
effect="dark">全部发货</el-tag>
<el-tag v-else-if="scope.row.orderStatus == ''" effect="plain">已发货</el-tag>
<el-tag type="success" v-else-if="scope.row.orderStatus == ''" effect="plain">已到货</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="150">
<template slot-scope="scope">
<el-button
type="text"
@click="addOrUpdateHandle(scope.row)"
v-has="'btn_edit'"
>编辑
<el-button type="text" @click="addOrUpdateHandle(scope.row)" v-has="'btn_edit'">
</el-button>
<el-button
type="text"
class="JNPF-table-delBtn"
v-has="'btn_remove'"
@click="handleDel(scope.row.id)"
>删除
<el-button type="text" class="JNPF-table-delBtn" v-has="'btn_remove'" @click="handleDel(scope.row.id)">
</el-button>
<el-button
type="text"
v-has="'btn_detail'"
@click="goDetail(scope.row.id)"
>详情
<el-button type="text" v-has="'btn_detail'" @click="goDetail(scope.row.id)">
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination
:total="total"
:page.sync="listQuery.currentPage"
:limit.sync="listQuery.pageSize"
@pagination="initData"
/>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
@pagination="initData" />
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<ImportBox v-if="uploadBoxVisible" ref="UploadBox" @refresh="initData" />
<Detail
v-if="detailVisible"
ref="Detail"
@refresh="detailVisible = false"
/>
<ToFormDetail
v-if="toFormDetailVisible"
ref="toFormDetail"
@close="toFormDetailVisible = false"
/>
<SuperQuery
v-if="superQueryVisible"
ref="SuperQuery"
:columnOptions="superQueryJson"
@superQuery="superQuery"
/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible = false" />
<ToFormDetail v-if="toFormDetailVisible" ref="toFormDetail" @close="toFormDetailVisible = false" />
<SuperQuery v-if="superQueryVisible" ref="SuperQuery" :columnOptions="superQueryJson" @superQuery="superQuery" />
</div>
</template>
@ -558,7 +416,7 @@ export default {
this.initData();
},
//
async initSearchData() {},
async initSearchData() { },
initData() {
this.listLoading = true;
let _query = {
@ -602,7 +460,7 @@ export default {
});
});
})
.catch(() => {});
.catch(() => { });
},
handelUpload() {
this.uploadBoxVisible = true;

Loading…
Cancel
Save