feat():采购协同;

master
jiyufei 2 months ago
parent 8127ae087c
commit 13e6af9a80

@ -374,11 +374,22 @@ public class YysMaterialProcurementOrderServiceImpl extends ServiceImpl<YysMater
return "采购单信息为空"; return "采购单信息为空";
} }
String currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
List<YysMaterialProcurementOrderEntity> collect = form.getOrderData().stream().map(obj -> { List<YysMaterialProcurementOrderEntity> collect = form.getOrderData().stream().map(form1 -> {
YysMaterialProcurementOrderEntity entity = BeanUtil.copyProperties(obj, YysMaterialProcurementOrderEntity.class);
String mainId = RandomUtil.uuId(); String mainId = RandomUtil.uuId();
int index = 1; 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.setId(mainId);
entity.setOrderNumber("PO" + currentDate + number); entity.setOrderNumber("PO" + currentDate + number);
entity.setCreatorTime(DateUtil.getNowDate()); entity.setCreatorTime(DateUtil.getNowDate());

@ -17,6 +17,7 @@ import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*; import java.util.*;
@ -83,6 +84,9 @@ public class YysMaterialProcurementOrderController {
@Autowired @Autowired
private ConfigValueUtil configValueUtil; private ConfigValueUtil configValueUtil;
@Resource
private YysSupplierInformationService yysSupplierInformationService;
/** /**
* *
* *
@ -94,9 +98,13 @@ public class YysMaterialProcurementOrderController {
public ActionResult list(@RequestBody YysMaterialProcurementOrderPagination yysMaterialProcurementOrderPagination) throws IOException { public ActionResult list(@RequestBody YysMaterialProcurementOrderPagination yysMaterialProcurementOrderPagination) throws IOException {
List<YysMaterialProcurementOrderEntity> list = yysMaterialProcurementOrderService.getList(yysMaterialProcurementOrderPagination); List<YysMaterialProcurementOrderEntity> list = yysMaterialProcurementOrderService.getList(yysMaterialProcurementOrderPagination);
List<Map<String, Object>> realList = new ArrayList<>(); 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) { for (YysMaterialProcurementOrderEntity entity : list) {
Map<String, Object> yysMaterialProcurementOrderMap = JsonUtil.entityToMap(entity); Map<String, Object> yysMaterialProcurementOrderMap = JsonUtil.entityToMap(entity);
yysMaterialProcurementOrderMap.put("id", yysMaterialProcurementOrderMap.get("id")); 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); realList.add(yysMaterialProcurementOrderMap);

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

Loading…
Cancel
Save