From 70b9038a1e5bd4799e774a9a36d303037ac09f2b Mon Sep 17 00:00:00 2001 From: zxy Date: Fri, 15 May 2026 17:37:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(biz):=20=E6=96=B0=E5=A2=9E=E6=88=90?= =?UTF-8?q?=E5=93=81=E5=85=A5=E5=87=BA=E5=BA=93=E5=8A=9F=E8=83=BD=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=94=80=E5=94=AE=E5=8F=91=E8=B4=A7=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../saledelivery/SaleDeliveryController.java | 6 +- .../saledelivery/vo/SaleDeliveryRespVO.java | 7 + .../vo/SaleDeliverySaveReqVO.java | 4 + .../saledelivery/SaleDeliveryMapper.java | 7 + .../SaleDeliveryDetailMapper.java | 14 + .../biz/service/order/OrderServiceImpl.java | 3 + .../saledelivery/SaleDeliveryService.java | 8 + .../saledelivery/SaleDeliveryServiceImpl.java | 95 +++++ mes-ui/mes-ui-admin-vue3/.gitignore | 71 +++- .../src/api/biz/prostorage/index.ts | 48 +++ .../src/api/biz/prostoragelog/index.ts | 56 +++ .../src/api/biz/prostoragemat/index.ts | 56 +++ .../src/views/biz/components/MoneyInput.vue | 331 ++++++++++++++++++ .../ProStorageInventorySelectDialog.vue | 293 ++++++++++++++++ .../biz/saledelivery/SaleDeliveryForm.vue | 250 +++++++++---- .../src/views/biz/saledelivery/index.vue | 227 +++++++----- .../src/views/biz/tsoorder/OrderForm.vue | 72 +++- .../src/views/biz/tsoorder/index.vue | 9 + 18 files changed, 1362 insertions(+), 195 deletions(-) create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/biz/prostorage/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/biz/prostoragelog/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/biz/prostoragemat/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/biz/components/MoneyInput.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/biz/prostorageinventory/ProStorageInventorySelectDialog.vue diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/SaleDeliveryController.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/SaleDeliveryController.java index 116ae5d..f2cf8ef 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/SaleDeliveryController.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/SaleDeliveryController.java @@ -66,9 +66,9 @@ public class SaleDeliveryController { @Operation(summary = "获得销售出库单主") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('tso:sale-delivery:query')") - public CommonResult getSaleDelivery(@RequestParam("id") Integer id) { - SaleDeliveryDO saleDelivery = saleDeliveryService.getSaleDelivery(id); - return success(BeanUtils.toBean(saleDelivery, SaleDeliveryRespVO.class)); + public CommonResult getSaleDelivery(@RequestParam("id") Integer id) { + SaleDeliverySaveReqVO saleDelivery = saleDeliveryService.getSaleDeliveryWithDetails(id); + return success(BeanUtils.toBean(saleDelivery, SaleDeliverySaveReqVO.class)); } @GetMapping("/page") diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/vo/SaleDeliveryRespVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/vo/SaleDeliveryRespVO.java index 80dcc4b..b70a8fd 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/vo/SaleDeliveryRespVO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/vo/SaleDeliveryRespVO.java @@ -2,12 +2,15 @@ package com.ningxia.yunxi.chemmes.module.biz.controller.admin.saledelivery.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.saledeliverydetail.vo.SaleDeliveryDetailRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 销售出库单主 Response VO") @Data @@ -28,6 +31,7 @@ public class SaleDeliveryRespVO { @Schema(description = "单据日期") @ExcelProperty("单据日期") + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate deliveryDate; @Schema(description = "客户id", example = "11842") @@ -118,4 +122,7 @@ public class SaleDeliveryRespVO { @ExcelProperty("发货数量") private BigDecimal deliveriedQty; + @Schema(description = "出库明细列表") + private List detailList; + } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/vo/SaleDeliverySaveReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/vo/SaleDeliverySaveReqVO.java index e8ddaf3..6877896 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/vo/SaleDeliverySaveReqVO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/saledelivery/vo/SaleDeliverySaveReqVO.java @@ -1,10 +1,12 @@ package com.ningxia.yunxi.chemmes.module.biz.controller.admin.saledelivery.vo; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.saledeliverydetail.vo.SaleDeliveryDetailSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; +import java.util.List; @Schema(description = "管理后台 - 销售出库单主新增/修改 Request VO") @Data @@ -85,4 +87,6 @@ public class SaleDeliverySaveReqVO { @Schema(description = "发货数量") private BigDecimal deliveriedQty; + private List detailList; + } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/saledelivery/SaleDeliveryMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/saledelivery/SaleDeliveryMapper.java index 6ba7295..116bf5b 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/saledelivery/SaleDeliveryMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/saledelivery/SaleDeliveryMapper.java @@ -45,4 +45,11 @@ public interface SaleDeliveryMapper extends BaseMapperX { .orderByDesc(SaleDeliveryDO::getId)); } + default String selectMaxSaleDeliveryNo() { + SaleDeliveryDO saleDelivery = selectOne(new LambdaQueryWrapperX() + .orderByDesc(SaleDeliveryDO::getSaleDeliveryNo) + .last("LIMIT 1")); + return saleDelivery != null ? saleDelivery.getSaleDeliveryNo() : null; + } + } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/saledeliverydetail/SaleDeliveryDetailMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/saledeliverydetail/SaleDeliveryDetailMapper.java index 438373c..146890e 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/saledeliverydetail/SaleDeliveryDetailMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/saledeliverydetail/SaleDeliveryDetailMapper.java @@ -1,11 +1,16 @@ package com.ningxia.yunxi.chemmes.module.biz.dal.mysql.saledeliverydetail; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; import com.ningxia.yunxi.chemmes.framework.mybatis.core.mapper.BaseMapperX; import com.ningxia.yunxi.chemmes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.ningxia.yunxi.chemmes.module.biz.controller.admin.saledeliverydetail.vo.SaleDeliveryDetailPageReqVO; import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.saledeliverydetail.SaleDeliveryDetailDO; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 销售出库单子 Mapper @@ -15,6 +20,15 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SaleDeliveryDetailMapper extends BaseMapperX { + default List selectBySaleDeliveryId(Integer saleDeliveryId) { + return selectList(SaleDeliveryDetailDO::getSaleDeliveryId, saleDeliveryId); + } + + @Delete("DELETE FROM tso_sale_delivery_detail WHERE sale_delivery_id = #{saleDeliveryId}") + @InterceptorIgnore(tenantLine = "true") + int physicalDeleteBySaleDeliveryId(@Param("saleDeliveryId") Integer saleDeliveryId); + + default PageResult selectPage(SaleDeliveryDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .betweenIfPresent(SaleDeliveryDetailDO::getCreateTime, reqVO.getCreateTime()) diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/order/OrderServiceImpl.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/order/OrderServiceImpl.java index f48f243..5dbab6e 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/order/OrderServiceImpl.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/order/OrderServiceImpl.java @@ -64,6 +64,9 @@ public class OrderServiceImpl implements OrderService { if ("9".equals(order.getOrdStatus())) { updateReqVO.setOrdStatus("1"); } + if ("2".equals(order.getOrdStatus())) { + updateReqVO.setOrdStatus("3"); + } // 更新主表 OrderDO updateObj = BeanUtils.toBean(updateReqVO, OrderDO.class); diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/saledelivery/SaleDeliveryService.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/saledelivery/SaleDeliveryService.java index 61be1e8..3db127f 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/saledelivery/SaleDeliveryService.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/saledelivery/SaleDeliveryService.java @@ -44,6 +44,14 @@ public interface SaleDeliveryService { */ SaleDeliveryDO getSaleDelivery(Integer id); + /** + * 获得销售出库单详情(包含明细) + * + * @param id 编号 + * @return 销售出库单详情 + */ + SaleDeliverySaveReqVO getSaleDeliveryWithDetails(Integer id); + /** * 获得销售出库单主分页 * diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/saledelivery/SaleDeliveryServiceImpl.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/saledelivery/SaleDeliveryServiceImpl.java index 00500c4..ead244d 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/saledelivery/SaleDeliveryServiceImpl.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/saledelivery/SaleDeliveryServiceImpl.java @@ -4,12 +4,19 @@ import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; import com.ningxia.yunxi.chemmes.framework.common.util.object.BeanUtils; import com.ningxia.yunxi.chemmes.module.biz.controller.admin.saledelivery.vo.SaleDeliveryPageReqVO; import com.ningxia.yunxi.chemmes.module.biz.controller.admin.saledelivery.vo.SaleDeliverySaveReqVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.saledeliverydetail.vo.SaleDeliveryDetailSaveReqVO; import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.saledelivery.SaleDeliveryDO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.saledeliverydetail.SaleDeliveryDetailDO; import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.saledelivery.SaleDeliveryMapper; +import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.saledeliverydetail.SaleDeliveryDetailMapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; import static com.ningxia.yunxi.chemmes.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -25,30 +32,78 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService { @Resource private SaleDeliveryMapper saleDeliveryMapper; + @Resource + private SaleDeliveryDetailMapper saleDeliveryDetailMapper; + + @Override + @Transactional(rollbackFor = Exception.class) public Integer createSaleDelivery(SaleDeliverySaveReqVO createReqVO) { + String saleDeliveryNo = generateSaleDeliveryNo(); + createReqVO.setSaleDeliveryNo(saleDeliveryNo); // 插入 SaleDeliveryDO saleDelivery = BeanUtils.toBean(createReqVO, SaleDeliveryDO.class); saleDeliveryMapper.insert(saleDelivery); + + createSaleDeliveryDetailList(saleDelivery.getId(), createReqVO.getDetailList()); + // 返回 return saleDelivery.getId(); } @Override + @Transactional(rollbackFor = Exception.class) public void updateSaleDelivery(SaleDeliverySaveReqVO updateReqVO) { // 校验存在 validateSaleDeliveryExists(updateReqVO.getId()); // 更新 SaleDeliveryDO updateObj = BeanUtils.toBean(updateReqVO, SaleDeliveryDO.class); saleDeliveryMapper.updateById(updateObj); + updateSaleDeliveryDetailList(updateReqVO.getId(), updateReqVO.getDetailList()); } + /** + * 创建销售出库单子表列表 + */ + private void createSaleDeliveryDetailList(Integer saleDeliveryId, List list) { + if (list == null || list.isEmpty()) { + return; + } + List saleDeliveryDetails = BeanUtils.toBean(list, SaleDeliveryDetailDO.class); + saleDeliveryDetails.forEach(detail -> + detail.setSaleDeliveryId(saleDeliveryId) + .setId(null) + ); + saleDeliveryDetailMapper.insertBatch(saleDeliveryDetails); + } + + /** + * 更新销售出库单子表列表 + */ + private void updateSaleDeliveryDetailList(Integer saleDeliveryId, List list) { + // 先删除旧的子表记录 + deleteSaleDeliveryDetailBySaleDeliveryId(saleDeliveryId); + // 再插入新的子表记录 + createSaleDeliveryDetailList(saleDeliveryId, list); + } + + /** + * 根据销售出库单ID删除子表记录 + */ + private void deleteSaleDeliveryDetailBySaleDeliveryId(Integer saleDeliveryId) { + saleDeliveryDetailMapper.physicalDeleteBySaleDeliveryId(saleDeliveryId); + } + + @Override + @Transactional(rollbackFor = Exception.class) public void deleteSaleDelivery(Integer id) { // 校验存在 validateSaleDeliveryExists(id); // 删除 saleDeliveryMapper.deleteById(id); + // 删除子表 物理删除 + saleDeliveryDetailMapper.physicalDeleteBySaleDeliveryId(id); } private void validateSaleDeliveryExists(Integer id) { @@ -62,9 +117,49 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService { return saleDeliveryMapper.selectById(id); } + @Override + public SaleDeliverySaveReqVO getSaleDeliveryWithDetails(Integer id) { + // 查询主表 + SaleDeliveryDO saleDelivery = saleDeliveryMapper.selectById(id); + if (saleDelivery == null) { + throw exception("销售出库单主不存在"); + } + + // 转换为主表VO + SaleDeliverySaveReqVO saleDeliveryVO = BeanUtils.toBean(saleDelivery, SaleDeliverySaveReqVO.class); + + // 查询子表 + List detailList = saleDeliveryDetailMapper.selectBySaleDeliveryId(id); + // 转换为子表VO列表 + saleDeliveryVO.setDetailList(BeanUtils.toBean(detailList, SaleDeliveryDetailSaveReqVO.class)); + + return saleDeliveryVO; + } + @Override public PageResult getSaleDeliveryPage(SaleDeliveryPageReqVO pageReqVO) { return saleDeliveryMapper.selectPage(pageReqVO); } + + + /** + * 生成销售出库单号 + * 规则:SC + 年份(4位) + 月份(2位) + 流水号(3位) + */ + private String generateSaleDeliveryNo() { + String ym = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMM")); + + String maxSaleDeliveryNo = saleDeliveryMapper.selectMaxSaleDeliveryNo(); + + if (maxSaleDeliveryNo == null || maxSaleDeliveryNo.length() < 9 + || !maxSaleDeliveryNo.substring(2, 8).equals(ym)) { + return "SC" + ym + "001"; + } else { + String prefix = maxSaleDeliveryNo.substring(0, 8); + int sequence = Integer.parseInt(maxSaleDeliveryNo.substring(8)); + sequence++; + return prefix + String.format("%03d", sequence); + } + } } diff --git a/mes-ui/mes-ui-admin-vue3/.gitignore b/mes-ui/mes-ui-admin-vue3/.gitignore index 5793d9e..0643472 100644 --- a/mes-ui/mes-ui-admin-vue3/.gitignore +++ b/mes-ui/mes-ui-admin-vue3/.gitignore @@ -1,12 +1,61 @@ -node_modules +# 测试文件夹 +tests/ +test-results/ +test-reports/ +html-report/ + +# 截图文件 +*.png +*.jpg +*.jpeg + +# 测试日志 +*.log +logs/ + +# pytest 缓存 +.pytest_cache/ +.coverage +htmlcov/ + +# Node.js 依赖 +node_modules/ + +# 构建输出 +dist/ +build/ +*.zip + +# 编辑器配置 +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# 操作系统文件 .DS_Store -dist -dist-ssr -*.local -/dist* -*-lock.* -pnpm-debug -auto-*.d.ts -.idea -.history -/.trae/ +Thumbs.db + +# 环境变量 +.env +.env.local +.env.*.local + +# 临时文件 +*.tmp +*.temp + +# Python 字节码 +__pycache__/ +*.pyc +*.pyo +*.pyd +.Python + +# 虚拟环境 +venv/ +env/ +.venv/ +/pytest.ini +/pnpm-lock.yaml diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/prostorage/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/prostorage/index.ts new file mode 100644 index 0000000..a967c66 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/prostorage/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface ProStorageVO { + id: number + billNo: string + operatorType: boolean + businessType: number + remark: string + status: boolean + billDate: localdate + operatorId: number + operatorName: string + relarionNo: string + relarionId: number + billType: string + sourceNo: string + sourceId: number +} + +// 查询成品入/出库分页 +export const getProStoragePage = async (params) => { + return await request.get({ url: `/twm/pro-storage/page`, params }) +} + +// 查询成品入/出库详情 +export const getProStorage = async (id: number) => { + return await request.get({ url: `/twm/pro-storage/get?id=` + id }) +} + +// 新增成品入/出库 +export const createProStorage = async (data: ProStorageVO) => { + return await request.post({ url: `/twm/pro-storage/create`, data }) +} + +// 修改成品入/出库 +export const updateProStorage = async (data: ProStorageVO) => { + return await request.put({ url: `/twm/pro-storage/update`, data }) +} + +// 删除成品入/出库 +export const deleteProStorage = async (id: number) => { + return await request.delete({ url: `/twm/pro-storage/delete?id=` + id }) +} + +// 导出成品入/出库 Excel +export const exportProStorage = async (params) => { + return await request.download({ url: `/twm/pro-storage/export-excel`, params }) +} \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/prostoragelog/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/prostoragelog/index.ts new file mode 100644 index 0000000..e182fd8 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/prostoragelog/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface ProStorageLogVO { + id: number + stockId: number + description: string + status: boolean + storeHouseId: number + storeAreaId: number + storeHouseCd: string + storeHouseName: string + storeAreCd: string + storeAreaName: string + materialId: number + matName: string + matCode: string + spec: string + unit: string + lotNo: string + operatorQty: number + inOutType: boolean + billType: number + storageAft: number + storageBef: number + stockItemId: number +} + +// 查询成品入/出库日志分页 +export const getProStorageLogPage = async (params) => { + return await request.get({ url: `/twm/pro-storage-log/page`, params }) +} + +// 查询成品入/出库日志详情 +export const getProStorageLog = async (id: number) => { + return await request.get({ url: `/twm/pro-storage-log/get?id=` + id }) +} + +// 新增成品入/出库日志 +export const createProStorageLog = async (data: ProStorageLogVO) => { + return await request.post({ url: `/twm/pro-storage-log/create`, data }) +} + +// 修改成品入/出库日志 +export const updateProStorageLog = async (data: ProStorageLogVO) => { + return await request.put({ url: `/twm/pro-storage-log/update`, data }) +} + +// 删除成品入/出库日志 +export const deleteProStorageLog = async (id: number) => { + return await request.delete({ url: `/twm/pro-storage-log/delete?id=` + id }) +} + +// 导出成品入/出库日志 Excel +export const exportProStorageLog = async (params) => { + return await request.download({ url: `/twm/pro-storage-log/export-excel`, params }) +} \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/prostoragemat/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/prostoragemat/index.ts new file mode 100644 index 0000000..a343e54 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/prostoragemat/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface ProStorageMatVO { + id: number + stockId: number + description: string + storeHouseId: number + storeAreaId: number + storeHouseCd: string + storeHouseName: string + storeAreCd: string + storeAreaName: string + materialId: number + matName: string + matCode: string + spec: string + unit: string + lotNo: string + operatorQty: number + sourceId: number + relarionId: number + bagSpec: number + bagQty: number + planId: number + proNo: string +} + +// 查询成品入/出库子分页 +export const getProStorageMatPage = async (params) => { + return await request.get({ url: `/twm/pro-storage-mat/page`, params }) +} + +// 查询成品入/出库子详情 +export const getProStorageMat = async (id: number) => { + return await request.get({ url: `/twm/pro-storage-mat/get?id=` + id }) +} + +// 新增成品入/出库子 +export const createProStorageMat = async (data: ProStorageMatVO) => { + return await request.post({ url: `/twm/pro-storage-mat/create`, data }) +} + +// 修改成品入/出库子 +export const updateProStorageMat = async (data: ProStorageMatVO) => { + return await request.put({ url: `/twm/pro-storage-mat/update`, data }) +} + +// 删除成品入/出库子 +export const deleteProStorageMat = async (id: number) => { + return await request.delete({ url: `/twm/pro-storage-mat/delete?id=` + id }) +} + +// 导出成品入/出库子 Excel +export const exportProStorageMat = async (params) => { + return await request.download({ url: `/twm/pro-storage-mat/export-excel`, params }) +} \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/components/MoneyInput.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/components/MoneyInput.vue new file mode 100644 index 0000000..b9ec4c0 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/components/MoneyInput.vue @@ -0,0 +1,331 @@ + + + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/prostorageinventory/ProStorageInventorySelectDialog.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/prostorageinventory/ProStorageInventorySelectDialog.vue new file mode 100644 index 0000000..3d6a790 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/prostorageinventory/ProStorageInventorySelectDialog.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/saledelivery/SaleDeliveryForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/saledelivery/SaleDeliveryForm.vue index 428208c..23ddbac 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/saledelivery/SaleDeliveryForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/saledelivery/SaleDeliveryForm.vue @@ -9,6 +9,7 @@ > + 基础信息 @@ -84,13 +85,12 @@ - + @@ -110,6 +110,7 @@ + 收货信息 @@ -130,59 +131,61 @@ - -
- - 新增 -
- - - + + + + + - + - + - + - + - + - + - + - + - +