jiaxing.zhou

Merge remote-tracking branch 'origin/master'

Showing 26 changed files with 59 additions and 39 deletions
......@@ -141,3 +141,4 @@ public class DeliveryMainController {
}
}
......
......@@ -87,7 +87,7 @@ public class InvoiceMainController {
@Operation(summary = "删除发票", description = "根据发票ID逻辑删除发票")
@DeleteMapping("/{invoiceId}")
@PreAuthorize("hasAuthority('invoice:delete')")
@PreAuthorize("hasAuthority('invoice:remove')")
public ApiRes<Void> deleteInvoice(
@Parameter(description = "发票ID", required = true) @PathVariable Long invoiceId) {
try {
......@@ -141,3 +141,4 @@ public class InvoiceMainController {
}
}
......
......@@ -61,3 +61,4 @@ public class DeliveryAddReq {
private List<DeliveryItemAddReq> deliveryItems;
}
......
......@@ -37,3 +37,4 @@ public class DeliveryItemAddReq {
private BigDecimal deliveryAmount;
}
......
......@@ -59,3 +59,4 @@ public class DeliveryItemRes {
private LocalDateTime updateTime;
}
......
......@@ -40,3 +40,4 @@ public class DeliveryItemUpdateReq {
private BigDecimal deliveryAmount;
}
......
......@@ -67,3 +67,4 @@ public class DeliveryRes {
private List<DeliveryItemRes> deliveryItems;
}
......
......@@ -65,3 +65,4 @@ public class DeliveryUpdateReq {
private List<DeliveryItemUpdateReq> deliveryItems;
}
......
......@@ -42,3 +42,4 @@ public class InvoiceItemAddReq {
private BigDecimal taxAmount;
}
......
......@@ -62,3 +62,4 @@ public class InvoiceItemRes {
private LocalDateTime updateTime;
}
......
......@@ -45,3 +45,4 @@ public class InvoiceItemUpdateReq {
private BigDecimal taxAmount;
}
......
......@@ -55,3 +55,4 @@ public class InvoiceQueryReq {
private Integer pageSize = 10;
}
......
......@@ -66,3 +66,4 @@ public class DeliveryItem {
private String delFlag;
}
......
......@@ -72,3 +72,4 @@ public class InvoiceItem {
private String delFlag;
}
......
......@@ -81,3 +81,4 @@ public class InvoiceMain {
private String delFlag;
}
......
......@@ -14,3 +14,4 @@ import org.apache.ibatis.annotations.Mapper;
public interface DeliveryItemMapper extends BaseMapper<DeliveryItem> {
}
......
......@@ -14,3 +14,4 @@ import org.apache.ibatis.annotations.Mapper;
public interface DeliveryMainMapper extends BaseMapper<DeliveryMain> {
}
......
......@@ -14,3 +14,4 @@ import org.apache.ibatis.annotations.Mapper;
public interface InvoiceItemMapper extends BaseMapper<InvoiceItem> {
}
......
......@@ -14,3 +14,4 @@ import org.apache.ibatis.annotations.Mapper;
public interface InvoiceMainMapper extends BaseMapper<InvoiceMain> {
}
......
......@@ -69,3 +69,4 @@ public interface DeliveryMainService extends IService<DeliveryMain> {
boolean updateDeliveryStatus(Long deliveryId, Integer deliveryStatus);
}
......
......@@ -69,3 +69,4 @@ public interface InvoiceMainService extends IService<InvoiceMain> {
boolean updateInvoiceStatus(Long invoiceId, Integer invoiceStatus);
}
......
......@@ -229,3 +229,4 @@ public class DeliveryMainServiceImpl extends ServiceImpl<DeliveryMainMapper, Del
}
}
......
......@@ -112,6 +112,7 @@ public class InvoiceMainServiceImpl extends ServiceImpl<InvoiceMainMapper, Invoi
InvoiceMain invoiceMain = new InvoiceMain();
BeanUtils.copyProperties(addReq, invoiceMain);
invoiceMain.setUpdateTime(LocalDateTime.now());
invoiceMain.setCreateTime(LocalDateTime.now());
invoiceMain.setUpdateTime(LocalDateTime.now());
invoiceMain.setDelFlag("0");
......
......@@ -7,31 +7,10 @@ export {}
declare module 'vue' {
export interface GlobalComponents {
ElButton: typeof import('element-plus/es')['ElButton']
ElCard: typeof import('element-plus/es')['ElCard']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTag: typeof import('element-plus/es')['ElTag']
ElText: typeof import('element-plus/es')['ElText']
Header: typeof import('./src/components/layout/Header.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
Sidebar: typeof import('./src/components/layout/Sidebar.vue')['default']
SidebarItem: typeof import('./src/components/layout/SidebarItem.vue')['default']
}
export interface ComponentCustomProperties {
vLoading: typeof import('element-plus/es')['ElLoadingDirective']
}
}
......
......@@ -63,7 +63,7 @@
<!-- 操作按钮区域 -->
<div class="action-section">
<div class="action-buttons">
<button @click="handleAdd" class="action-btn primary">➕ 新增出库</button>
<button @click="handleAdd" class="action-btn primary">✨ 新增</button>
<button @click="handleExport" class="action-btn secondary">📋 导出</button>
</div>
</div>
......@@ -178,8 +178,16 @@
<h4>出库基本信息</h4>
<div class="detail-grid">
<div class="detail-item">
<label>出库单号:</label>
<span>{{ deliveryDetail.deliveryNo }}</span>
<label>出库单ID:</label>
<span>{{ orderDetail.deliveryId }}</span>
</div>
<div class="detail-item">
<label>出库单编号:</label>
<span>{{ orderDetail.deliveryNo }}</span>
</div>
<div class="detail-item">
<label>关联订单编号:</label>
<span>{{ orderDetail.orderNo }}</span>
</div>
<div class="detail-item">
<label>关联订单编号:</label>
......@@ -195,11 +203,7 @@
</div>
<div class="detail-item">
<label>出库日期:</label>
<span>{{ formatDate(deliveryDetail.deliveryDate) }}</span>
</div>
<div class="detail-item">
<label>出库总金额:</label>
<span>{{ formatCurrency(deliveryDetail.totalAmount) }}</span>
<span>{{ formatDate(orderDetail.deliveryDate) }}</span>
</div>
<div class="detail-item">
<label>出库状态:</label>
......@@ -208,33 +212,47 @@
</span>
</div>
<div class="detail-item">
<label>仓库编码:</label>
<span>{{ orderDetail.warehouseCode }}</span>
</div>
<div class="detail-item">
<label>数据来源:</label>
<span>{{ orderDetail.dataSource || '-' }}</span>
</div>
<div class="detail-item">
<label>上传时间:</label>
<span>{{ formatTime(orderDetail.uploadTime || '') }}</span>
</div>
<div class="detail-item">
<label>创建时间:</label>
<span>{{ formatTime(deliveryDetail.createTime || '') }}</span>
<span>{{ formatTime(orderDetail.createTime || '') }}</span>
</div>
<div class="detail-item">
<label>更新时间:</label>
<span>{{ formatTime(orderDetail.updateTime || '') }}</span>
</div>
</div>
</div>
<div class="detail-section" v-if="deliveryDetail.deliveryItems && deliveryDetail.deliveryItems.length > 0">
<div class="detail-section" v-if="orderDetail.deliveryItems && orderDetail.deliveryItems.length > 0">
<h4>出库明细</h4>
<table class="detail-table">
<thead>
<tr>
<th>产品编码</th>
<th>产品名称</th>
<th>产品型号</th>
<th>出库数量</th>
<th>出库单价</th>
<th>出库总价</th>
<th>出库金额</th>
</tr>
</thead>
<tbody>
<tr v-for="item in deliveryDetail.deliveryItems" :key="item.itemId">
<tr v-for="item in orderDetail.deliveryItems" :key="item.deliveryItemId">
<td>{{ item.productCode }}</td>
<td>{{ item.productName }}</td>
<td>{{ item.productModel }}</td>
<td>{{ item.productQty }}</td>
<td>{{ formatCurrency(item.unitPrice) }}</td>
<td>{{ formatCurrency(item.totalPrice) }}</td>
<td>{{ item.deliveryQty }}</td>
<td>{{ formatCurrency(item.deliveryPrice) }}</td>
<td>{{ formatCurrency(item.deliveryAmount) }}</td>
</tr>
</tbody>
</table>
......
This diff is collapsed. Click to expand it.