diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreColorController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreColorController.java index 2886ce431..35319e116 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreColorController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreColorController.java @@ -1,18 +1,19 @@ package com.ruoyi.web.controller.xkt; -import com.ruoyi.common.annotation.Log; +import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.core.controller.XktBaseController; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.xkt.domain.StoreColor; +import com.ruoyi.web.controller.xkt.vo.storeColor.StoreColorVO; import com.ruoyi.xkt.service.IStoreColorService; -import org.springframework.beans.factory.annotation.Autowired; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -22,70 +23,21 @@ import java.util.List; * @date 2025-03-26 */ @RestController +@Api(tags = "档口所有颜色") +@RequiredArgsConstructor @RequestMapping("/rest/v1/store-colors") public class StoreColorController extends XktBaseController { - @Autowired - private IStoreColorService storeColorService; + + final IStoreColorService storeColorService; /** - * 查询档口所有颜色列表 + * 查询档口颜色列表 */ - @PreAuthorize("@ss.hasPermi('system:color:list')") - @GetMapping("/list") - public TableDataInfo list(StoreColor storeColor) { - startPage(); - List list = storeColorService.selectStoreColorList(storeColor); - return getDataTable(list); + @PreAuthorize("@ss.hasPermi('system:product:list')") + @ApiOperation(value = "查询档口颜色列表", httpMethod = "GET", response = R.class) + @GetMapping("/list/{storeId}") + public R> list(@PathVariable Long storeId) { + return R.ok(BeanUtil.copyToList(storeColorService.list(storeId), StoreColorVO.class)); } - /** - * 导出档口所有颜色列表 - */ - @PreAuthorize("@ss.hasPermi('system:color:export')") - @Log(title = "档口所有颜色", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, StoreColor storeColor) { - List list = storeColorService.selectStoreColorList(storeColor); - ExcelUtil util = new ExcelUtil(StoreColor.class); - util.exportExcel(response, list, "档口所有颜色数据"); - } - - /** - * 获取档口所有颜色详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:color:query')") - @GetMapping(value = "/{storeColorId}") - public R getInfo(@PathVariable("storeColorId") Long storeColorId) { - return success(storeColorService.selectStoreColorByStoreColorId(storeColorId)); - } - - /** - * 新增档口所有颜色 - */ - @PreAuthorize("@ss.hasPermi('system:color:add')") - @Log(title = "档口所有颜色", businessType = BusinessType.INSERT) - @PostMapping - public R add(@RequestBody StoreColor storeColor) { - return success(storeColorService.insertStoreColor(storeColor)); - } - - /** - * 修改档口所有颜色 - */ - @PreAuthorize("@ss.hasPermi('system:color:edit')") - @Log(title = "档口所有颜色", businessType = BusinessType.UPDATE) - @PutMapping - public R edit(@RequestBody StoreColor storeColor) { - return success(storeColorService.updateStoreColor(storeColor)); - } - - /** - * 删除档口所有颜色 - */ - @PreAuthorize("@ss.hasPermi('system:color:remove')") - @Log(title = "档口所有颜色", businessType = BusinessType.DELETE) - @DeleteMapping("/{storeColorIds}") - public R remove(@PathVariable Long[] storeColorIds) { - return success(storeColorService.deleteStoreColorByStoreColorIds(storeColorIds)); - } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductDemandController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductDemandController.java index aff2b5225..a5f2ced2c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductDemandController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductDemandController.java @@ -10,16 +10,10 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.web.controller.xkt.vo.storeCustomer.StoreCusPageVO; -import com.ruoyi.web.controller.xkt.vo.storeProductDemand.StoreProdDemandPageResVO; -import com.ruoyi.web.controller.xkt.vo.storeProductDemand.StoreProdDemandPageVO; -import com.ruoyi.web.controller.xkt.vo.storeProductDemand.StoreProdDemandQuantityVO; -import com.ruoyi.web.controller.xkt.vo.storeProductDemand.StoreProdDemandVO; +import com.ruoyi.web.controller.xkt.vo.storeProductDemand.*; import com.ruoyi.xkt.domain.StoreProductDemand; import com.ruoyi.xkt.dto.storeCustomer.StoreCusPageDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandPageDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandPageResDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandQuantityDTO; +import com.ruoyi.xkt.dto.storeProductDemand.*; import com.ruoyi.xkt.service.IStoreProductDemandService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -53,6 +47,17 @@ public class StoreProductDemandController extends XktBaseController { // TODO 入库单判断需求单是否存在 // TODO 入库单判断需求单是否存在 + + // TODO 删除需求单,若该需求单有已完成的入库单,则该需求单状态改为已完成,并将数量改为已完成的入库单数量 + // TODO 删除需求单,若该需求单有已完成的入库单,则该需求单状态改为已完成,并将数量改为已完成的入库单数量 + // TODO 删除需求单,若该需求单有已完成的入库单,则该需求单状态改为已完成,并将数量改为已完成的入库单数量 + // TODO 删除需求单,若该需求单有已完成的入库单,则该需求单状态改为已完成,并将数量改为已完成的入库单数量 + + + // TODO 点击安排生产,状态才会变成:生产中,若仅仅是由入库单来反推,则不能变更状态 + // TODO 点击安排生产,状态才会变成:生产中,若仅仅是由入库单来反推,则不能变更状态 + // TODO 点击安排生产,状态才会变成:生产中,若仅仅是由入库单来反推,则不能变更状态 + /** * 根据货号获取所有颜色的库存数量、在产数量 */ @@ -84,6 +89,28 @@ public class StoreProductDemandController extends XktBaseController { return R.ok(storeProdDemandService.selectPage(BeanUtil.toBean(pageVO, StoreProdDemandPageDTO.class))); } + /** + * 点击安排生产 + */ + @PreAuthorize("@ss.hasPermi('system:demand:edit')") + @ApiOperation(value = "点击安排生产", httpMethod = "PUT", response = R.class) + @Log(title = "点击安排生产", businessType = BusinessType.UPDATE) + @PutMapping + public R updateWorkingStatus(@Validated @RequestBody StoreProdDemandWorkingVO workingVO) { + return R.ok(storeProdDemandService.updateWorkingStatus(BeanUtil.toBean(workingVO, StoreProdDemandWorkingDTO.class))); + } + + + + + + + + + + + + /** * 获取档口商品需求单详细信息 @@ -95,15 +122,7 @@ public class StoreProductDemandController extends XktBaseController { } - /** - * 修改档口商品需求单 - */ - @PreAuthorize("@ss.hasPermi('system:demand:edit')") - @Log(title = "档口商品需求单", businessType = BusinessType.UPDATE) - @PutMapping - public R edit(@RequestBody StoreProductDemand storeProductDemand) { - return success(storeProdDemandService.updateStoreProductDemand(storeProductDemand)); - } + /** * 删除档口商品需求单 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStorageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStorageController.java index 27015ba78..d8bef0332 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStorageController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStorageController.java @@ -60,9 +60,9 @@ public class StoreProductStorageController extends XktBaseController { */ @PreAuthorize("@ss.hasPermi('system:storage:query')") @ApiOperation(value = "获取档口商品入库详细信息", httpMethod = "GET", response = R.class) - @GetMapping(value = "/{storeProdStorId}") - public R getInfo(@PathVariable("storeProdStorId") Long storeProdStorId) { - return R.ok(BeanUtil.toBean(storeProdStorageService.selectByStoreProdStorId(storeProdStorId), StoreProdStorageResVO.class)); + @GetMapping(value = "/{storeProdStorageId}") + public R getInfo(@PathVariable("storeProdStorageId") Long storeProdStorageId) { + return R.ok(BeanUtil.toBean(storeProdStorageService.selectByStoreProdStorageId(storeProdStorageId), StoreProdStorageResVO.class)); } /** @@ -72,8 +72,8 @@ public class StoreProductStorageController extends XktBaseController { @ApiOperation(value = "撤销档口商品入库", httpMethod = "DELETE", response = R.class) @Log(title = "撤销档口商品入库", businessType = BusinessType.DELETE) @DeleteMapping("/{storeProdStorageId}") - public R remove(@PathVariable Long storeProdStorageId) { - return R.ok(storeProdStorageService.deleteByStoreProdStorId(storeProdStorageId)); + public R remove(@PathVariable Long storeProdStorageId) { + return R.ok(storeProdStorageService.deleteByStoreProdStorageId(storeProdStorageId)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStorageDemandDeducteController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStorageDemandDeducteController.java index c195b6609..423b34368 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStorageDemandDeducteController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStorageDemandDeducteController.java @@ -27,65 +27,4 @@ public class StoreProductStorageDemandDeducteController extends XktBaseControlle @Autowired private IStoreProductStorageDemandDeducteService storeProductStorageDemandDeducteService; - /** - * 查询档口商品入库抵扣需求列表 - */ - @PreAuthorize("@ss.hasPermi('system:deducte:list')") - @GetMapping("/list") - public TableDataInfo list(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte) { - startPage(); - List list = storeProductStorageDemandDeducteService.selectStoreProductStorageDemandDeducteList(storeProductStorageDemandDeducte); - return getDataTable(list); - } - - /** - * 导出档口商品入库抵扣需求列表 - */ - @PreAuthorize("@ss.hasPermi('system:deducte:export')") - @Log(title = "档口商品入库抵扣需求", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, StoreProductStorageDemandDeduct storeProductStorageDemandDeducte) { - List list = storeProductStorageDemandDeducteService.selectStoreProductStorageDemandDeducteList(storeProductStorageDemandDeducte); - ExcelUtil util = new ExcelUtil(StoreProductStorageDemandDeduct.class); - util.exportExcel(response, list, "档口商品入库抵扣需求数据"); - } - - /** - * 获取档口商品入库抵扣需求详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:deducte:query')") - @GetMapping(value = "/{storeProdStorDemaDeducteId}") - public R getInfo(@PathVariable("storeProdStorDemaDeducteId") Long storeProdStorDemaDeducteId) { - return success(storeProductStorageDemandDeducteService.selectStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(storeProdStorDemaDeducteId)); - } - - /** - * 新增档口商品入库抵扣需求 - */ - @PreAuthorize("@ss.hasPermi('system:deducte:add')") - @Log(title = "档口商品入库抵扣需求", businessType = BusinessType.INSERT) - @PostMapping - public R add(@RequestBody StoreProductStorageDemandDeduct storeProductStorageDemandDeducte) { - return success(storeProductStorageDemandDeducteService.insertStoreProductStorageDemandDeducte(storeProductStorageDemandDeducte)); - } - - /** - * 修改档口商品入库抵扣需求 - */ - @PreAuthorize("@ss.hasPermi('system:deducte:edit')") - @Log(title = "档口商品入库抵扣需求", businessType = BusinessType.UPDATE) - @PutMapping - public R edit(@RequestBody StoreProductStorageDemandDeduct storeProductStorageDemandDeducte) { - return success(storeProductStorageDemandDeducteService.updateStoreProductStorageDemandDeducte(storeProductStorageDemandDeducte)); - } - - /** - * 删除档口商品入库抵扣需求 - */ - @PreAuthorize("@ss.hasPermi('system:deducte:remove')") - @Log(title = "档口商品入库抵扣需求", businessType = BusinessType.DELETE) - @DeleteMapping("/{storeProdStorDemaDeducteIds}") - public R remove(@PathVariable Long[] storeProdStorDemaDeducteIds) { - return success(storeProductStorageDemandDeducteService.deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteIds(storeProdStorDemaDeducteIds)); - } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/BasePageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/BasePageVO.java index 8645ca7b5..421b7c9a4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/BasePageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/BasePageVO.java @@ -16,10 +16,10 @@ import javax.validation.constraints.NotNull; public class BasePageVO { @NotNull(message = "pageNum不能为空") - @ApiModelProperty(name = "pageNum") + @ApiModelProperty(value = "pageNum", required = true) private int pageNum; @NotNull(message = "pageSize不能为空") - @ApiModelProperty(name = "pageSize") + @ApiModelProperty(value = "pageSize", required = true) private int pageSize; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderAddReqVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderAddReqVO.java index 07036a162..e56f96f7b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderAddReqVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderAddReqVO.java @@ -11,13 +11,13 @@ import java.util.List; * @author liangyq * @date 2025-04-02 22:31 */ -@ApiModel +@ApiModel("订单新增参数") @Data public class StoreOrderAddReqVO { /** * 档口ID */ - @ApiModelProperty("档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; // /** // * 下单用户ID @@ -26,67 +26,67 @@ public class StoreOrderAddReqVO { /** * 订单备注 */ - @ApiModelProperty("订单备注") + @ApiModelProperty(value = "订单备注") private String orderRemark; /** * 物流ID */ - @ApiModelProperty("物流ID") + @ApiModelProperty(value = "物流ID") private Long expressId; /** * 收货人-名称 */ - @ApiModelProperty("收货人-名称") + @ApiModelProperty(value = "收货人-名称") private String destinationContactName; /** * 收货人-电话 */ - @ApiModelProperty("收货人-电话") + @ApiModelProperty(value = "收货人-电话") private String destinationContactPhoneNumber; /** * 收货人-省编码 */ - @ApiModelProperty("收货人-省编码") + @ApiModelProperty(value = "收货人-省编码") private String destinationProvinceCode; /** * 收货人-市编码 */ - @ApiModelProperty("收货人-市编码") + @ApiModelProperty(value = "收货人-市编码") private String destinationCityCode; /** * 收货人-区县编码 */ - @ApiModelProperty("收货人-区县编码") + @ApiModelProperty(value = "收货人-区县编码") private String destinationCountyCode; /** * 收货人-详细地址 */ - @ApiModelProperty("收货人-详细地址") + @ApiModelProperty(value = "收货人-详细地址") private String destinationDetailAddress; /** * 发货方式[1:货其再发 2:有货先发] */ - @ApiModelProperty("发货方式[1:货其再发 2:有货先发]") + @ApiModelProperty(value = "发货方式[1:货其再发 2:有货先发]") private Integer deliveryType; /** * 最晚发货时间 */ - @ApiModelProperty("最晚发货时间") + @ApiModelProperty(value = "最晚发货时间") private Date deliveryEndTime; /** * 明细列表 */ - @ApiModelProperty("明细列表") + @ApiModelProperty(value = "明细列表") private List detailList; - @ApiModel + @ApiModel(value = "明细") @Data public static class Detail { - @ApiModelProperty("商品颜色尺码ID") + @ApiModelProperty(value = "商品颜色尺码ID") private Long storeProdColorSizeId; - @ApiModelProperty("商品数量") + @ApiModelProperty(value = "商品数量") private Integer goodsQuantity; } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeColor/StoreColorVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeColor/StoreColorVO.java index 7eb7947e2..55176305c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeColor/StoreColorVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeColor/StoreColorVO.java @@ -13,11 +13,11 @@ import lombok.Data; @Data public class StoreColorVO { - @ApiModelProperty(name = "档口颜色ID") + @ApiModelProperty(value = "档口颜色ID") private Long storeColorId; - @ApiModelProperty(name = "颜色名称") + @ApiModelProperty(value = "颜色名称") private String colorName; - @ApiModelProperty(name = "排序") + @ApiModelProperty(value = "排序") private Integer orderNum; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscountVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscountVO.java index bc709bbf0..db9d15a3f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscountVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscountVO.java @@ -19,18 +19,18 @@ import java.math.BigDecimal; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreCusProdDiscountVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空!") private Long storeId; - @ApiModelProperty(name = "档口客户ID") + @ApiModelProperty(value = "档口客户ID") private Long storeCusId; @NotBlank(message = "客户名称不能为空!") - @ApiModelProperty(name = "客户名称") + @ApiModelProperty(value = "客户名称", required = true) private String storeCusName; - @ApiModelProperty(name = "客户联系电话") + @ApiModelProperty(value = "客户联系电话") private String phone; @NotNull(message = "优惠金额不能为空!") - @ApiModelProperty(name = "优惠金额") + @ApiModelProperty(value = "优惠金额", required = true) private BigDecimal discount; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusFuzzyResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusFuzzyResVO.java index 8f8200afb..5e6c62fad 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusFuzzyResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusFuzzyResVO.java @@ -17,11 +17,11 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class StoreCusFuzzyResVO { - @ApiModelProperty("档口客户ID") + @ApiModelProperty(value = "档口客户ID") private Long storeCusId; - @ApiModelProperty("档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty(name = "客户名称") + @ApiModelProperty(value = "客户名称") private String cusName; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusGeneralSaleVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusGeneralSaleVO.java index 8a16bb2c2..7c05379f2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusGeneralSaleVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusGeneralSaleVO.java @@ -17,17 +17,17 @@ import java.math.BigDecimal; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreCusGeneralSaleVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty(name = "档口客户ID") + @ApiModelProperty(value = "档口客户ID") private Long storeCusId; - @ApiModelProperty(name = "档口客户名称") + @ApiModelProperty(value = "档口客户名称") private String storeCusName; - @ApiModelProperty(name = "销售多少双") + @ApiModelProperty(value = "销售多少双") private Long saleCount; - @ApiModelProperty(name = "销售金额") + @ApiModelProperty(value = "销售金额") private BigDecimal saleAmount; - @ApiModelProperty(name = "欠款金额") + @ApiModelProperty(value = "欠款金额") private BigDecimal debtAmount; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusPageVO.java index a19e20c5f..51925a9f8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusPageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusPageVO.java @@ -18,9 +18,9 @@ import javax.validation.constraints.NotNull; @Data public class StoreCusPageVO extends BasePageVO { - @ApiModelProperty(name = "客户名称") + @ApiModelProperty(value = "客户名称") private String cusName; - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空") private Long storeId; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusVO.java index 7901f238f..53c62ef11 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusVO.java @@ -19,16 +19,16 @@ import javax.validation.constraints.NotNull; public class StoreCusVO { @NotNull(message = "档口ID不能为空!") - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) private Long storeId; - @ApiModelProperty(name = "档口客户ID", notes = "新增为空,编辑必传") + @ApiModelProperty(value = "档口客户ID 新增为空,编辑必传") private Long storeCusId; @NotBlank(message = "客户名称不能为空!") - @ApiModelProperty(name = "客户名称") + @ApiModelProperty(value = "客户名称", required = true) private String cusName; - @ApiModelProperty(name = "客户联系电话") + @ApiModelProperty(value = "客户联系电话") private String phone; - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注") private String remark; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeFactory/StoreFactoryPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeFactory/StoreFactoryPageVO.java index 994c515e6..80deac59e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeFactory/StoreFactoryPageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeFactory/StoreFactoryPageVO.java @@ -18,9 +18,9 @@ import javax.validation.constraints.NotNull; @Data public class StoreFactoryPageVO extends BasePageVO { - @ApiModelProperty(name = "工厂名称") + @ApiModelProperty(value = "工厂名称") private String facName; - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空") private Long storeId; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeFactory/StoreFactoryVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeFactory/StoreFactoryVO.java index 95d4c7c78..3be674d57 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeFactory/StoreFactoryVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeFactory/StoreFactoryVO.java @@ -18,19 +18,19 @@ import javax.validation.constraints.NotNull; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreFactoryVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空!") private Long storeId; - @ApiModelProperty(name = "档口工厂ID", notes = "新增不传 编辑必传") + @ApiModelProperty(value = "档口工厂ID[新增不传 编辑必传]") private Long storeFactoryId; @NotBlank(message = "工厂名称不能为空!") - @ApiModelProperty(name = "工厂名称") + @ApiModelProperty(value = "工厂名称", required = true) private String facName; - @ApiModelProperty(name = "工厂地址") + @ApiModelProperty(value = "工厂地址") private String facAddress; - @ApiModelProperty(name = "工厂联系电话") + @ApiModelProperty(value = "工厂联系电话") private String facPhone; - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注") private String remark; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storePordColor/StoreProdColorResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storePordColor/StoreProdColorResVO.java index f13db5ae4..7bb5e1f6e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storePordColor/StoreProdColorResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storePordColor/StoreProdColorResVO.java @@ -4,9 +4,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; - /** * @author liujiang * @version v1.0 @@ -16,17 +13,17 @@ import javax.validation.constraints.NotNull; @Data public class StoreProdColorResVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty(name = "档口颜色ID") + @ApiModelProperty(value = "档口颜色ID") private Long storeColorId; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "商品分类名称") + @ApiModelProperty(value = "商品分类名称") private String prodCateName; - @ApiModelProperty(name = "颜色名称") + @ApiModelProperty(value = "颜色名称") private String colorName; - @ApiModelProperty(name = "排序") + @ApiModelProperty(value = "排序") private Integer orderNum; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdFuzzyResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdFuzzyResVO.java index 9edc02677..ae472d9ae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdFuzzyResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdFuzzyResVO.java @@ -2,13 +2,10 @@ package com.ruoyi.web.controller.xkt.vo.storeProd; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; import lombok.experimental.Accessors; -import java.math.BigDecimal; import java.util.List; /** @@ -22,20 +19,21 @@ import java.util.List; @Accessors(chain = true) public class StoreProdFuzzyResVO { - @ApiModelProperty("档口商品ID") + @ApiModelProperty(value = "档口商品ID") private Long storeProdId; - @ApiModelProperty("档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty("商品下颜色列表") + @ApiModelProperty(value = "商品颜色列表") private List colorList; @Data + @ApiModel(value = "商品颜色列表") public static class StoreProdFuzzyColorResVO { - @ApiModelProperty("档口颜色ID") + @ApiModelProperty(value = "档口颜色ID") private Long storeColorId; - @ApiModelProperty("颜色名称") + @ApiModelProperty(value = "颜色名称") private String colorName; } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageResVO.java index 4ee1acc01..d6d899ac5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageResVO.java @@ -17,21 +17,21 @@ import java.util.List; @Data public class StoreProdPageResVO { - @ApiModelProperty(name = "档口商品主图url") + @ApiModelProperty(value = "档口商品主图url") private String mainPicUrl; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "颜色") + @ApiModelProperty(value = "颜色") private String colorName; - @ApiModelProperty(name = "分类类目") + @ApiModelProperty(value = "分类类目") private String prodCateName; - @ApiModelProperty(name = "标准尺码") + @ApiModelProperty(value = "标准尺码") private List standardSizeList; - @ApiModelProperty(name = "销售金额(元)") + @ApiModelProperty(value = "销售金额(元)") private BigDecimal price; - @ApiModelProperty(name = "状态") + @ApiModelProperty(value = "状态") private Integer prodStatus; - @ApiModelProperty(name = "创建时间") + @ApiModelProperty(value = "创建时间") private Date createTime; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageVO.java index 81dcaa722..8b6fa6bea 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageVO.java @@ -18,12 +18,15 @@ import javax.validation.constraints.NotNull; @Data public class StoreProdPageVO extends BasePageVO { - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "商品分类ID") + @ApiModelProperty(value = "商品分类ID") private Long prodCateId; - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空") private Long storeId; + @ApiModelProperty(value = "商品状态[1未发布,2在售,3尾货,4已下架,5已删除]", required = true) + @NotNull(message = "商品状态不能为空") + private Integer prodStatus; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPicSpaceResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPicSpaceResVO.java index 4460f0fbe..ff741cacc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPicSpaceResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPicSpaceResVO.java @@ -16,11 +16,11 @@ import java.util.List; @Data public class StoreProdPicSpaceResVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty(name = "档口名称") + @ApiModelProperty(value = "档口名称") private String storeName; - @ApiModelProperty(name = "档口文件列表") + @ApiModelProperty(value = "档口文件列表") private List fileList; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java index 9e00b5c1a..2513022de 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java @@ -19,152 +19,159 @@ import java.util.List; @Data public class StoreProdResVO { - @ApiModelProperty("档口商品名称") + @ApiModelProperty(value = "档口商品名称") private Long storeProdId; - @ApiModelProperty("档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty("档口商品名称") + @ApiModelProperty(value = "档口商品名称") private String prodName; - @ApiModelProperty(name = "商品分类ID") + @ApiModelProperty(value = "商品分类ID") private Long prodCateId; - @ApiModelProperty(name = "工厂货号") + @ApiModelProperty(value = "工厂货号") private String factoryArtNum; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "商品标题") + @ApiModelProperty(value = "商品标题") private String prodTitle; - @ApiModelProperty(name = "商品重量") + @ApiModelProperty(value = "商品重量") private BigDecimal prodWeight; - @ApiModelProperty(name = "生产价格") + @ApiModelProperty(value = "生产价格") private Integer producePrice; - @ApiModelProperty(name = "大小码加价") + @ApiModelProperty(value = "大小码加价") private Integer overPrice; - @ApiModelProperty(name = "发货时效") + @ApiModelProperty(value = "发货时效") private Integer deliveryTime; - @ApiModelProperty(name = "上架方式") + @ApiModelProperty(value = "上架方式") private Integer listingWay; - @ApiModelProperty(name = "定时发货时间(精确到小时)") + @ApiModelProperty(value = "定时发货时间(精确到小时)") @JsonFormat(pattern = "yyyy-MM-dd HH:mm") private Date listingWaySchedule; - @ApiModelProperty(name = "档口文件列表") + @ApiModelProperty(value = "档口文件列表") private List fileList; - @ApiModelProperty(name = "档口类目属性列表") + @ApiModelProperty(value = "档口类目属性列表") private List cateAttrList; - @ApiModelProperty(name = "档口所有颜色列表") + @ApiModelProperty(value = "档口所有颜色列表") private List allColorList; - @ApiModelProperty(name = "商品颜色列表") + @ApiModelProperty(value = "商品颜色列表") private List colorList; - @ApiModelProperty(name = "档口颜色价格列表") + @ApiModelProperty(value = "档口颜色价格列表") private List priceList; - @ApiModelProperty(name = "档口服务承诺") + @ApiModelProperty(value = "档口服务承诺") private StoreProdSvcVO svc; - @ApiModelProperty(name = "详情内容") + @ApiModelProperty(value = "详情内容") private StoreProdDetailVO detail; - @ApiModelProperty(name = "档口商品生产工艺") + @ApiModelProperty(value = "档口商品生产工艺") private StoreProdProcessVO process; @Data + @ApiModel(value = "档口商品文件") public static class StoreProdFileVO { - @ApiModelProperty(name = "文件名称") + @ApiModelProperty(value = "文件名称") private String fileName; - @ApiModelProperty(name = "文件路径") + @ApiModelProperty(value = "文件路径") private String fileUrl; - @ApiModelProperty(name = "文件大小") + @ApiModelProperty(value = "文件大小") private BigDecimal fileSize; - @ApiModelProperty(name = "文件类型") + @ApiModelProperty(value = "文件类型") private Integer fileType; - @ApiModelProperty(name = "排序") + @ApiModelProperty(value = "排序") private Integer orderNum; } @Data + @ApiModel(value = "档口商品类目属性") public static class StoreProdCateAttrVO { - @ApiModelProperty(name = "系统设置类目") + @ApiModelProperty(value = "系统设置类目") private String dictType; - @ApiModelProperty(name = "系统设置类目值") + @ApiModelProperty(value = "系统设置类目值") private String dictValue; } @Data + @ApiModel(value = "档口商品颜色尺码") public static class StoreProdColorSizeVO { - @ApiModelProperty(name = "档口颜色ID") + @ApiModelProperty(value = "档口颜色ID") private Long storeColorId; - @ApiModelProperty(name = "商品尺码") + @ApiModelProperty(value = "商品尺码") private Integer size; - @ApiModelProperty(name = "是否是标准尺码") + @ApiModelProperty(value = "是否是标准尺码") private Integer standard; } @Data + @ApiModel(value = "档口商品颜色价格") public static class StoreProdColorPriceVO { - @ApiModelProperty(name = "档口商品颜色ID") + @ApiModelProperty(value = "档口商品颜色ID") private Long storeColorId; - @ApiModelProperty(name = "档口商品定价") + @ApiModelProperty(value = "档口商品定价") private BigDecimal price; } @Data + @ApiModel(value = "档口商品服务") public static class StoreProdSvcVO { - @ApiModelProperty(name = "大小码及定制款可退") + @ApiModelProperty(value = "大小码及定制款可退") private String customRefund; - @ApiModelProperty(name = "30天包退") + @ApiModelProperty(value = "30天包退") private String thirtyDayRefund; - @ApiModelProperty(name = "一件起批") + @ApiModelProperty(value = "一件起批") private String oneBatchSale; - @ApiModelProperty(name = "退款72小时到账") + @ApiModelProperty(value = "退款72小时到账") private String refundWithinThreeDay; } @Data + @ApiModel(value = "档口商品详情") public static class StoreProdDetailVO { - @ApiModelProperty(name = "详情内容") + @ApiModelProperty(value = "详情内容") private String detail; } @Data + @ApiModel(value = "档口商品工艺") public static class StoreProdProcessVO { - @ApiModelProperty(name = "鞋型") + @ApiModelProperty(value = "鞋型") private String shoeType; - @ApiModelProperty(name = "楦号") + @ApiModelProperty(value = "楦号") private String shoeSize; - @ApiModelProperty(name = "主皮") + @ApiModelProperty(value = "主皮") private String mainSkin; - @ApiModelProperty(name = "主皮用量") + @ApiModelProperty(value = "主皮用量") private String mainSkinUsage; - @ApiModelProperty(name = "配皮") + @ApiModelProperty(value = "配皮") private String matchSkin; - @ApiModelProperty(name = "配皮用量") + @ApiModelProperty(value = "配皮用量") private String matchSkinUsage; - @ApiModelProperty(name = "领口") + @ApiModelProperty(value = "领口") private String neckline; - @ApiModelProperty(name = "膛底") + @ApiModelProperty(value = "膛底") private String insole; - @ApiModelProperty(name = "扣件/拉头") + @ApiModelProperty(value = "扣件/拉头") private String fastener; - @ApiModelProperty(name = "辅料") + @ApiModelProperty(value = "辅料") private String shoeAccessories; - @ApiModelProperty(name = "包头") + @ApiModelProperty(value = "包头") private String toeCap; - @ApiModelProperty(name = "包边") + @ApiModelProperty(value = "包边") private String edgeBinding; - @ApiModelProperty(name = "中大底") + @ApiModelProperty(value = "中大底") private String midOutsole; - @ApiModelProperty(name = "防水台") + @ApiModelProperty(value = "防水台") private String platformSole; - @ApiModelProperty(name = "中底厂家编码") + @ApiModelProperty(value = "中底厂家编码") private String midsoleFactoryCode; - @ApiModelProperty(name = "外底厂家编码") + @ApiModelProperty(value = "外底厂家编码") private String outsoleFactoryCode; - @ApiModelProperty(name = "跟厂编码") + @ApiModelProperty(value = "跟厂编码") private String heelFactoryCode; - @ApiModelProperty(name = "配料") + @ApiModelProperty(value = "配料") private String components; - @ApiModelProperty(name = "第二底料") + @ApiModelProperty(value = "第二底料") private String secondSoleMaterial; - @ApiModelProperty(name = "第二配料") + @ApiModelProperty(value = "第二配料") private String secondUpperMaterial; - @ApiModelProperty(name = "自定义") + @ApiModelProperty(value = "自定义") private String customAttr; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdStatusVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdStatusVO.java index cbb2bd33e..af35b0eae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdStatusVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdStatusVO.java @@ -18,10 +18,10 @@ import java.util.List; public class StoreProdStatusVO { @NotNull(message = "档口商品ID不能为空!") - @ApiModelProperty("档口商品ID") + @ApiModelProperty(value = "档口商品ID", required = true) private List storeProdIdList; @NotBlank(message = "档口商品状态不能为空!") - @ApiModelProperty("档口商品状态") + @ApiModelProperty(value = "档口商品状态", required = true) private Integer prodStatus; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdVO.java index 97a9ddf87..610c71cfc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdVO.java @@ -25,198 +25,207 @@ import java.util.List; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreProdVO { - @ApiModelProperty("档口商品名称") + @ApiModelProperty(value = "档口商品名称") private String prodName; - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空!") private Long storeId; - @ApiModelProperty(name = "商品分类ID") + @ApiModelProperty(value = "商品分类ID", required = true) @NotNull(message = "商品分类ID不能为空!") private Long prodCateId; - @ApiModelProperty(name = "工厂货号") + @ApiModelProperty(value = "工厂货号") @Size(max = 15, message = "工厂货号不能超过60个字!") private String factoryArtNum; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号", required = true) @Size(max = 15, message = "商品货号不能超过60个字!") @NotBlank(message = "商品货号不能为空!") private String prodArtNum; - @ApiModelProperty(name = "商品标题") + @ApiModelProperty(value = "商品标题", required = true) @Size(max = 60, message = "商品标题不能超过60个字!") @NotBlank(message = "商品标题不能为空!") private String prodTitle; - @ApiModelProperty(name = "商品重量") + @ApiModelProperty(value = "商品重量") private BigDecimal prodWeight; - @ApiModelProperty(name = "生产价格") + @ApiModelProperty(value = "生产价格") private Integer producePrice; - @ApiModelProperty(name = "大小码加价") + @ApiModelProperty(value = "大小码加价") private Integer overPrice; - @ApiModelProperty(name = "发货时效") + @ApiModelProperty(value = "发货时效") private Integer deliveryTime; - @ApiModelProperty(name = "上架方式") + @ApiModelProperty(value = "上架方式:1 立即上架 2 定时上架", required = true) @NotBlank(message = "上架方式不能为空!") private Integer listingWay; - @ApiModelProperty(name = "商品状态") + @ApiModelProperty(value = "商品状态:1.未发布 2. 在售 3. 尾货 4.已下架 4. 已删除", required = true) @NotBlank(message = "商品状态不能为空!") private Integer prodStatus; - @ApiModelProperty(name = "定时发货时间(精确到小时)") + @ApiModelProperty(value = "定时发货时间(精确到小时)") @JsonFormat(pattern = "yyyy-MM-dd HH") private Date listingWaySchedule; - @ApiModelProperty(name = "档口文件列表") + @ApiModelProperty(value = "档口文件列表", required = true) @NotNull(message = "档口文件不能为空!") @Valid private List fileList; @NotNull(message = "档口类目属性列表不能为空!") @Valid - @ApiModelProperty(name = "档口类目属性列表") + @ApiModelProperty(value = "档口类目属性列表", required = true) private List cateAttrList; @NotNull(message = "档口所有颜色列表不能为空!") - @ApiModelProperty(name = "档口所有颜色列表") + @ApiModelProperty(value = "档口所有颜色列表", required = true) private List allColorList; @NotNull(message = "商品颜色列表不能为空!") @Valid - @ApiModelProperty(name = "商品颜色列表") + @ApiModelProperty(value = "商品颜色列表", required = true) private List colorList; @NotNull(message = "档口尺码列表不能为空!") @Valid - @ApiModelProperty(name = "档口尺码列表") + @ApiModelProperty(value = "档口尺码列表", required = true) private List sizeList; @NotNull(message = "档口颜色价格列表不能为空!") @Valid - @ApiModelProperty(name = "档口颜色价格列表") + @ApiModelProperty(value = "档口颜色价格列表", required = true) private List priceList; - @ApiModelProperty(name = "档口服务承诺") + @ApiModelProperty(value = "档口服务承诺") private StoreProdSvcVO svc; + @NotNull(message = "详情内容不能为空!") @Valid - @ApiModelProperty(name = "详情内容") + @ApiModelProperty(value = "详情内容", required = true) private StoreProdDetailVO detail; - @ApiModelProperty(name = "档口生产工艺") + @ApiModelProperty(value = "档口生产工艺") private StoreProdProcessVO process; @Data + @ApiModel(value = "档口文件列表") public static class StoreProdFileVO { @NotBlank(message = "文件名称不能为空!") - @ApiModelProperty(name = "文件名称") + @ApiModelProperty(value = "文件名称", required = true) private String fileName; @NotBlank(message = "文件路径不能为空!") - @ApiModelProperty(name = "文件路径") + @ApiModelProperty(value = "文件路径", required = true) private String fileUrl; @NotNull(message = "文件大小不能为空!") - @ApiModelProperty(name = "文件大小") + @ApiModelProperty(value = "文件大小", required = true) private BigDecimal fileSize; @NotBlank(message = "文件类型不能为空!") - @ApiModelProperty(name = "文件类型") + @ApiModelProperty(value = "文件类型", required = true) private Integer fileType; - @ApiModelProperty(name = "排序") + @ApiModelProperty(value = "排序", required = true) @NotNull(message = "排序不能为空!") private Integer orderNum; } @Data + @ApiModel(value = "档口类目属性列表") public static class StoreProdCateAttrVO { - @ApiModelProperty(name = "系统设置类目") + @ApiModelProperty(value = "系统设置类目") private String dictType; - @ApiModelProperty(name = "系统设置类目值") + @ApiModelProperty(value = "系统设置类目值") private String dictValue; } @Data + @ApiModel(value = "商品颜色列表") public static class StoreProdColorVO { @NotNull(message = "档口颜色ID不能为空!") - @ApiModelProperty(name = "档口颜色ID") + @ApiModelProperty(value = "档口颜色ID", required = true) private Long storeColorId; @NotBlank(message = "颜色名称不能为空!") - @ApiModelProperty(name = "颜色名称") + @ApiModelProperty(value = "颜色名称", required = true) private String colorName; @NotNull(message = "排序不能为空!") - @ApiModelProperty(name = "排序") + @ApiModelProperty(value = "排序", required = true) private Integer orderNum; } @Data + @ApiModel(value = "档口尺码列表") public static class StoreProdColorSizeVO { @NotNull(message = "档口颜色ID不能为空!") - @ApiModelProperty(name = "档口颜色ID") + @ApiModelProperty(value = "档口颜色ID", required = true) private Long storeColorId; - @ApiModelProperty(name = "商品尺码") + @ApiModelProperty(value = "商品尺码", required = true) @NotNull(message = "档口商品定价不能为空!") private Integer size; @NotBlank(message = "是否是标准尺码不能为空!") - @ApiModelProperty(name = "是否是标准尺码") + @ApiModelProperty(value = "是否是标准尺码", required = true) private Integer standard; } @Data + @ApiModel(value = "档口颜色价格列表") public static class StoreProdColorPriceVO { @NotNull(message = "档口商品颜色ID不能为空!") - @ApiModelProperty(name = "档口商品颜色ID") + @ApiModelProperty(value = "档口商品颜色ID", required = true) private Long storeColorId; @NotNull(message = "档口商品定价不能为空!") - @ApiModelProperty(name = "档口商品定价") + @ApiModelProperty(value = "档口商品定价", required = true) private BigDecimal price; } @Data + @ApiModel(value = "档口服务承诺") public static class StoreProdSvcVO { - @ApiModelProperty(name = "大小码及定制款可退") + @ApiModelProperty(value = "大小码及定制款可退") private String customRefund; - @ApiModelProperty(name = "30天包退") + @ApiModelProperty(value = "30天包退") private String thirtyDayRefund; - @ApiModelProperty(name = "一件起批") + @ApiModelProperty(value = "一件起批") private String oneBatchSale; - @ApiModelProperty(name = "退款72小时到账") + @ApiModelProperty(value = "退款72小时到账") private String refundWithinThreeDay; } @Data + @ApiModel(value = "详情内容") public static class StoreProdDetailVO { @NotBlank(message = "详情内容不能为空!") - @ApiModelProperty(name = "详情内容") + @ApiModelProperty(value = "详情内容", required = true) private String detail; } @Data + @ApiModel(value = "档口生产工艺") public static class StoreProdProcessVO { - @ApiModelProperty(name = "鞋型") + @ApiModelProperty(value = "鞋型") private String shoeType; - @ApiModelProperty(name = "楦号") + @ApiModelProperty(value = "楦号") private String shoeSize; - @ApiModelProperty(name = "主皮") + @ApiModelProperty(value = "主皮") private String mainSkin; - @ApiModelProperty(name = "主皮用量") + @ApiModelProperty(value = "主皮用量") private String mainSkinUsage; - @ApiModelProperty(name = "配皮") + @ApiModelProperty(value = "配皮") private String matchSkin; - @ApiModelProperty(name = "配皮用量") + @ApiModelProperty(value = "配皮用量") private String matchSkinUsage; - @ApiModelProperty(name = "领口") + @ApiModelProperty(value = "领口") private String neckline; - @ApiModelProperty(name = "膛底") + @ApiModelProperty(value = "膛底") private String insole; - @ApiModelProperty(name = "扣件/拉头") + @ApiModelProperty(value = "扣件/拉头") private String fastener; - @ApiModelProperty(name = "辅料") + @ApiModelProperty(value = "辅料") private String shoeAccessories; - @ApiModelProperty(name = "包头") + @ApiModelProperty(value = "包头") private String toeCap; - @ApiModelProperty(name = "包边") + @ApiModelProperty(value = "包边") private String edgeBinding; - @ApiModelProperty(name = "中大底") + @ApiModelProperty(value = "中大底") private String midOutsole; - @ApiModelProperty(name = "防水台") + @ApiModelProperty(value = "防水台") private String platformSole; - @ApiModelProperty(name = "中底厂家编码") + @ApiModelProperty(value = "中底厂家编码") private String midsoleFactoryCode; - @ApiModelProperty(name = "外底厂家编码") + @ApiModelProperty(value = "外底厂家编码") private String outsoleFactoryCode; - @ApiModelProperty(name = "跟厂编码") + @ApiModelProperty(value = "跟厂编码") private String heelFactoryCode; - @ApiModelProperty(name = "配料") + @ApiModelProperty(value = "配料") private String components; - @ApiModelProperty(name = "第二底料") + @ApiModelProperty(value = "第二底料") private String secondSoleMaterial; - @ApiModelProperty(name = "第二配料") + @ApiModelProperty(value = "第二配料") private String secondUpperMaterial; - @ApiModelProperty(name = "自定义") + @ApiModelProperty(value = "自定义") private String customAttr; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdBarcodeMatch/BarcodeMatchVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdBarcodeMatch/BarcodeMatchVO.java index 3876e7b1c..d732d4da2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdBarcodeMatch/BarcodeMatchVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdBarcodeMatch/BarcodeMatchVO.java @@ -19,34 +19,36 @@ import java.util.List; public class BarcodeMatchVO { @NotNull(message = "档口商品ID不能为空") - @ApiModelProperty("档口商品ID") + @ApiModelProperty(value = "档口商品ID", required = true) private Long storeProdId; - @ApiModelProperty("档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空") private Long storeId; - @ApiModelProperty("与第三方系统匹配规则") + @ApiModelProperty(value = "与第三方系统匹配规则", required = true) @NotNull(message = "与第三方系统匹配规则不能为空") @Valid List colorList; @Data + @ApiModel(value = "与第三方系统匹配规则") public static class BarcodeMatchColorVO { @NotNull(message = "颜色ID不能为空") - @ApiModelProperty("档口颜色ID") + @ApiModelProperty(value = "档口颜色ID", required = true) private Long storeColorId; - @ApiModelProperty("颜色尺码ID列表") + @ApiModelProperty(value = "颜色尺码ID列表", required = true) @NotNull(message = "颜色尺码ID列表不能为空") @Valid List sizeList; } @Data + @ApiModel(value = "颜色尺码ID列表") public static class BarcodeMatchSizeVO { @NotNull(message = "尺码不能为空") - @ApiModelProperty("尺码") + @ApiModelProperty(value = "尺码", required = true) private Integer size; @NotBlank(message = "条码不能为空") - @ApiModelProperty("条码") + @ApiModelProperty(value = "条码", required = true) private String barcode; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockPageVO.java index 5c5b2525a..e7714aaa5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockPageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockPageVO.java @@ -18,10 +18,10 @@ import javax.validation.constraints.NotNull; @Data public class StoreProdStockPageVO extends BasePageVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空") private Long storeId; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockResVO.java index 8450d306b..20e190750 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockResVO.java @@ -15,47 +15,47 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class StoreProdStockResVO { - @ApiModelProperty(name = "档口商品库存ID") + @ApiModelProperty(value = "档口商品库存ID") private Long storeProdStockId; - @ApiModelProperty(name = "档口商品ID") + @ApiModelProperty(value = "档口商品ID") private Long storeProdId; - @ApiModelProperty(name = "档口商品主图url") + @ApiModelProperty(value = "档口商品主图url") private String mainPicUrl; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "颜色名称") + @ApiModelProperty(value = "颜色名称") private String colorName; - @ApiModelProperty(name = "分类类目") + @ApiModelProperty(value = "分类类目") private String prodCateName; - @ApiModelProperty(name = "尺码30") + @ApiModelProperty(value = "尺码30") private Integer size30; - @ApiModelProperty(name = "尺码31") + @ApiModelProperty(value = "尺码31") private Integer size31; - @ApiModelProperty(name = "尺码32") + @ApiModelProperty(value = "尺码32") private Integer size32; - @ApiModelProperty(name = "尺码33") + @ApiModelProperty(value = "尺码33") private Integer size33; - @ApiModelProperty(name = "尺码34") + @ApiModelProperty(value = "尺码34") private Integer size34; - @ApiModelProperty(name = "尺码35") + @ApiModelProperty(value = "尺码35") private Integer size35; - @ApiModelProperty(name = "尺码36") + @ApiModelProperty(value = "尺码36") private Integer size36; - @ApiModelProperty(name = "尺码37") + @ApiModelProperty(value = "尺码37") private Integer size37; - @ApiModelProperty(name = "尺码38") + @ApiModelProperty(value = "尺码38") private Integer size38; - @ApiModelProperty(name = "尺码39") + @ApiModelProperty(value = "尺码39") private Integer size39; - @ApiModelProperty(name = "尺码40") + @ApiModelProperty(value = "尺码40") private Integer size40; - @ApiModelProperty(name = "尺码41") + @ApiModelProperty(value = "尺码41") private Integer size41; - @ApiModelProperty(name = "尺码42") + @ApiModelProperty(value = "尺码42") private Integer size42; - @ApiModelProperty(name = "尺码43") + @ApiModelProperty(value = "尺码43") private Integer size43; - @ApiModelProperty(name = "总数量") + @ApiModelProperty(value = "总数量") private Integer totalStock; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockVO.java index 203162bb6..2298cbda3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockVO.java @@ -15,37 +15,37 @@ import lombok.Data; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreProdStockVO { - @ApiModelProperty(name = "档口商品库存ID") + @ApiModelProperty(value = "档口商品库存ID") private Long storeProdStockId; - @ApiModelProperty(name = "颜色名称") + @ApiModelProperty(value = "颜色名称") private String colorName; - @ApiModelProperty(name = "尺码30") + @ApiModelProperty(value = "尺码30") private Integer size30; - @ApiModelProperty(name = "尺码31") + @ApiModelProperty(value = "尺码31") private Integer size31; - @ApiModelProperty(name = "尺码32") + @ApiModelProperty(value = "尺码32") private Integer size32; - @ApiModelProperty(name = "尺码33") + @ApiModelProperty(value = "尺码33") private Integer size33; - @ApiModelProperty(name = "尺码34") + @ApiModelProperty(value = "尺码34") private Integer size34; - @ApiModelProperty(name = "尺码35") + @ApiModelProperty(value = "尺码35") private Integer size35; - @ApiModelProperty(name = "尺码36") + @ApiModelProperty(value = "尺码36") private Integer size36; - @ApiModelProperty(name = "尺码37") + @ApiModelProperty(value = "尺码37") private Integer size37; - @ApiModelProperty(name = "尺码38") + @ApiModelProperty(value = "尺码38") private Integer size38; - @ApiModelProperty(name = "尺码39") + @ApiModelProperty(value = "尺码39") private Integer size39; - @ApiModelProperty(name = "尺码40") + @ApiModelProperty(value = "尺码40") private Integer size40; - @ApiModelProperty(name = "尺码41") + @ApiModelProperty(value = "尺码41") private Integer size41; - @ApiModelProperty(name = "尺码42") + @ApiModelProperty(value = "尺码42") private Integer size42; - @ApiModelProperty(name = "尺码43") + @ApiModelProperty(value = "尺码43") private Integer size43; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStoragePageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStoragePageVO.java index db28cc532..ea8184a9e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStoragePageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStoragePageVO.java @@ -20,17 +20,17 @@ import java.util.Date; @Data public class StoreProdStoragePageVO extends BasePageVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空!") private Long storeId; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "入库类型") + @ApiModelProperty(value = "入库类型") private Integer storageType; - @ApiModelProperty(name = "销售开始时间") + @ApiModelProperty(value = "销售开始时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTimeStart; - @ApiModelProperty(name = "销售结束时间") + @ApiModelProperty(value = "销售结束时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTimeEnd; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStorageResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStorageResVO.java index 7dea60f43..7f1b06c2e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStorageResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStorageResVO.java @@ -23,63 +23,63 @@ import java.util.List; @Accessors(chain = true) public class StoreProdStorageResVO { - @ApiModelProperty(name = "storeProdStorId") - @JsonProperty("storeProdStorId") + @ApiModelProperty(value = "storeProdStorageId") + @JsonProperty("storeProdStorageId") private Long id; - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty(name = "单据编号") + @ApiModelProperty(value = "单据编号") private String code; - @ApiModelProperty(name = "入库类型") + @ApiModelProperty(value = "入库类型") private Integer storageType; - @ApiModelProperty(name = "数量") + @ApiModelProperty(value = "数量") private Integer quantity; - @ApiModelProperty(name = "生产成本金额") + @ApiModelProperty(value = "生产成本金额") private BigDecimal produceAmount; - @ApiModelProperty(name = "操作人名称") + @ApiModelProperty(value = "操作人名称") private String operatorName; - @ApiModelProperty(name = "创建时间") + @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; - @ApiModelProperty(name = "商品入库明细列表") + @ApiModelProperty(value = "商品入库明细列表") private List detailList; @Data public static class StorageDetailVO { - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "颜色名称") + @ApiModelProperty(value = "颜色名称") private String colorName; - @ApiModelProperty(name = "尺码30") + @ApiModelProperty(value = "尺码30") private Integer size30; - @ApiModelProperty(name = "尺码31") + @ApiModelProperty(value = "尺码31") private Integer size31; - @ApiModelProperty(name = "尺码32") + @ApiModelProperty(value = "尺码32") private Integer size32; - @ApiModelProperty(name = "尺码33") + @ApiModelProperty(value = "尺码33") private Integer size33; - @ApiModelProperty(name = "尺码34") + @ApiModelProperty(value = "尺码34") private Integer size34; - @ApiModelProperty(name = "尺码35") + @ApiModelProperty(value = "尺码35") private Integer size35; - @ApiModelProperty(name = "尺码36") + @ApiModelProperty(value = "尺码36") private Integer size36; - @ApiModelProperty(name = "尺码37") + @ApiModelProperty(value = "尺码37") private Integer size37; - @ApiModelProperty(name = "尺码38") + @ApiModelProperty(value = "尺码38") private Integer size38; - @ApiModelProperty(name = "尺码39") + @ApiModelProperty(value = "尺码39") private Integer size39; - @ApiModelProperty(name = "尺码40") + @ApiModelProperty(value = "尺码40") private Integer size40; - @ApiModelProperty(name = "尺码41") + @ApiModelProperty(value = "尺码41") private Integer size41; - @ApiModelProperty(name = "尺码42") + @ApiModelProperty(value = "尺码42") private Integer size42; - @ApiModelProperty(name = "尺码43") + @ApiModelProperty(value = "尺码43") private Integer size43; - @ApiModelProperty(name = "总数量") + @ApiModelProperty(value = "总数量") private Integer quantity; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStorageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStorageVO.java index 7ae82fd31..a32488ee0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStorageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStorage/StoreProdStorageVO.java @@ -6,10 +6,10 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.Valid; +import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import javax.validation.constraints.Max; import java.math.BigDecimal; import java.util.List; @@ -23,93 +23,94 @@ import java.util.List; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreProdStorageVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空!") private Long storeId; @NotBlank(message = "入库类型不能为空!") - @ApiModelProperty(name = "入库类型") + @ApiModelProperty(value = "入库类型", required = true) private Integer storageType; @Valid @NotNull(message = "商品入库明细列表不能为空!") - @ApiModelProperty(name = "商品入库明细列表") + @ApiModelProperty(value = "商品入库明细列表", required = true) private List detailList; @Data + @ApiModel(value = "商品入库明细列表") public static class StorageDetailVO { @NotBlank(message = "商品货号不能为空!") - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号", required = true) private String prodArtNum; @NotNull(message = "档口商品颜色ID不能为空!") - @ApiModelProperty(name = "档口商品颜色ID") + @ApiModelProperty(value = "档口商品颜色ID", required = true) private Long storeProdColorId; @NotBlank(message = "颜色名称不能为空!") - @ApiModelProperty(name = "颜色名称") + @ApiModelProperty(value = "颜色名称", required = true) private String colorName; @NotNull(message = "档口商品ID不能为空!") - @ApiModelProperty(name = "档口商品ID") + @ApiModelProperty(value = "档口商品ID", required = true) private Long storeProdId; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码30") + @ApiModelProperty(value = "尺码30") private Integer size30; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码31") + @ApiModelProperty(value = "尺码31") private Integer size31; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码32") + @ApiModelProperty(value = "尺码32") private Integer size32; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码33") + @ApiModelProperty(value = "尺码33") private Integer size33; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码34") + @ApiModelProperty(value = "尺码34") private Integer size34; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码35") + @ApiModelProperty(value = "尺码35") private Integer size35; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码36") + @ApiModelProperty(value = "尺码36") private Integer size36; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码37") + @ApiModelProperty(value = "尺码37") private Integer size37; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码38") + @ApiModelProperty(value = "尺码38") private Integer size38; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码39") + @ApiModelProperty(value = "尺码39") private Integer size39; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码40") + @ApiModelProperty(value = "尺码40") private Integer size40; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码41") + @ApiModelProperty(value = "尺码41") private Integer size41; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码42") + @ApiModelProperty(value = "尺码42") private Integer size42; @Min(value = 0, message = "商品数量不能小于0双!") @Max(value = 9999, message = "商品数量不能超过9999双!") - @ApiModelProperty(name = "尺码43") + @ApiModelProperty(value = "尺码43") private Integer size43; - @ApiModelProperty(name = "总数量") + @ApiModelProperty(value = "总数量") private Integer quantity; - @ApiModelProperty(name = "生产价格") + @ApiModelProperty(value = "生产价格") private BigDecimal producePrice; - @ApiModelProperty(name = "总的生产价格") + @ApiModelProperty(value = "总的生产价格") private BigDecimal produceAmount; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandPageResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandPageResVO.java index 6cd2f8f52..391ba582b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandPageResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandPageResVO.java @@ -18,60 +18,60 @@ import java.util.Date; @Accessors(chain = true) public class StoreProdDemandPageResVO { - @ApiModelProperty(name = "storeProdDemandId") + @ApiModelProperty(value = "storeProdDemandId") private Long storeProdDemandId; - @ApiModelProperty(name = "storeProdDemandDetailId") + @ApiModelProperty(value = "storeProdDemandDetailId") private Long storeProdDemandDetailId; - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty(name = "档口工厂名称") + @ApiModelProperty(value = "档口工厂名称") private String storeFactoryName; - @ApiModelProperty(name = "创建时间") + @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; - @ApiModelProperty(name = "编号") + @ApiModelProperty(value = "编号") private String code; - @ApiModelProperty(name = "货号") + @ApiModelProperty(value = "货号") private String prodArtNum; - @ApiModelProperty(name = "颜色") + @ApiModelProperty(value = "颜色") private String colorName; - @ApiModelProperty(name = "生产状态") + @ApiModelProperty(value = "生产状态") private String detailStatus; - @ApiModelProperty(name = "紧急单还是正常单") + @ApiModelProperty(value = "紧急单还是正常单") private Integer emergency; - @ApiModelProperty(name = "计划生产数量") + @ApiModelProperty(value = "计划生产数量") private Integer quantity; - @ApiModelProperty(name = "入库数量") + @ApiModelProperty(value = "入库数量") private Integer storageQuantity; - @ApiModelProperty(name = "生产中数量") + @ApiModelProperty(value = "生产中数量") private Integer inProdQuantity; - @ApiModelProperty(name = "尺码30") + @ApiModelProperty(value = "尺码30") private Integer size30; - @ApiModelProperty(name = "尺码31") + @ApiModelProperty(value = "尺码31") private Integer size31; - @ApiModelProperty(name = "尺码32") + @ApiModelProperty(value = "尺码32") private Integer size32; - @ApiModelProperty(name = "尺码33") + @ApiModelProperty(value = "尺码33") private Integer size33; - @ApiModelProperty(name = "尺码34") + @ApiModelProperty(value = "尺码34") private Integer size34; - @ApiModelProperty(name = "尺码35") + @ApiModelProperty(value = "尺码35") private Integer size35; - @ApiModelProperty(name = "尺码36") + @ApiModelProperty(value = "尺码36") private Integer size36; - @ApiModelProperty(name = "尺码37") + @ApiModelProperty(value = "尺码37") private Integer size37; - @ApiModelProperty(name = "尺码38") + @ApiModelProperty(value = "尺码38") private Integer size38; - @ApiModelProperty(name = "尺码39") + @ApiModelProperty(value = "尺码39") private Integer size39; - @ApiModelProperty(name = "尺码40") + @ApiModelProperty(value = "尺码40") private Integer size40; - @ApiModelProperty(name = "尺码41") + @ApiModelProperty(value = "尺码41") private Integer size41; - @ApiModelProperty(name = "尺码42") + @ApiModelProperty(value = "尺码42") private Integer size42; - @ApiModelProperty(name = "尺码43") + @ApiModelProperty(value = "尺码43") private Integer size43; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandPageVO.java index 3ab51c7c4..51528c5c3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandPageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandPageVO.java @@ -18,16 +18,18 @@ import javax.validation.constraints.NotNull; @Data public class StoreProdDemandPageVO extends BasePageVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空") private Long storeId; - @ApiModelProperty(name = "档口工厂ID") + @ApiModelProperty(value = "需求状态:1 待生产 2 生产中 3 生产完成") + private Integer demandStatus; + @ApiModelProperty(value = "档口工厂ID") private Long storeFactoryId; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "备注") + @ApiModelProperty(value = "备注") private String remark; - @ApiModelProperty(name = "是否紧急单", notes = "0=正常,1=紧急") + @ApiModelProperty(value = "是否紧急单", notes = "0=正常,1=紧急") private Integer emergency; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandQuantityVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandQuantityVO.java index ec8ea8fd4..57161ddb5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandQuantityVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandQuantityVO.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Builder; import lombok.Data; -import lombok.RequiredArgsConstructor; import java.util.List; @@ -18,47 +17,47 @@ import java.util.List; @Builder public class StoreProdDemandQuantityVO { - @ApiModelProperty(name = "货号") + @ApiModelProperty(value = "货号") private Long storeId; - @ApiModelProperty(name = "档口商品ID") + @ApiModelProperty(value = "档口商品ID") private Long storeProdId; - @ApiModelProperty(name = "档口商品颜色ID") + @ApiModelProperty(value = "档口商品颜色ID") private Long storeProdColorId; - @ApiModelProperty(name = "货号") + @ApiModelProperty(value = "货号") private String prodArtNum; - @ApiModelProperty(name = "颜色") + @ApiModelProperty(value = "颜色") private String colorName; - @ApiModelProperty(name = "今天是否提交过需求申请") + @ApiModelProperty(value = "今天是否提交过需求申请") private Boolean todaySubmitted; - @ApiModelProperty(name = "数量对比列") + @ApiModelProperty(value = "数量对比列") private List compareStrList; - @ApiModelProperty(name = "尺码为30的数量") + @ApiModelProperty(value = "尺码为30的数量") private List size30List; - @ApiModelProperty(name = "尺码为31的数量") + @ApiModelProperty(value = "尺码为31的数量") private List size31List; - @ApiModelProperty(name = "尺码为32的数量") + @ApiModelProperty(value = "尺码为32的数量") private List size32List; - @ApiModelProperty(name = "尺码为33的数量") + @ApiModelProperty(value = "尺码为33的数量") private List size33List; - @ApiModelProperty(name = "尺码为34的数量") + @ApiModelProperty(value = "尺码为34的数量") private List size34List; - @ApiModelProperty(name = "尺码为35的数量") + @ApiModelProperty(value = "尺码为35的数量") private List size35List; - @ApiModelProperty(name = "尺码为36的数量") + @ApiModelProperty(value = "尺码为36的数量") private List size36List; - @ApiModelProperty(name = "尺码为37的数量") + @ApiModelProperty(value = "尺码为37的数量") private List size37List; - @ApiModelProperty(name = "尺码为38的数量") + @ApiModelProperty(value = "尺码为38的数量") private List size38List; - @ApiModelProperty(name = "尺码为39的数量") + @ApiModelProperty(value = "尺码为39的数量") private List size39List; - @ApiModelProperty(name = "尺码为40的数量") + @ApiModelProperty(value = "尺码为40的数量") private List size40List; - @ApiModelProperty(name = "尺码为41的数量") + @ApiModelProperty(value = "尺码为41的数量") private List size41List; - @ApiModelProperty(name = "尺码为42的数量") + @ApiModelProperty(value = "尺码为42的数量") private List size42List; - @ApiModelProperty(name = "尺码为43的数量") + @ApiModelProperty(value = "尺码为43的数量") private List size43List; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandVO.java index 27763a376..ad3bc581f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandVO.java @@ -2,14 +2,10 @@ package com.ruoyi.web.controller.xkt.vo.storeProductDemand; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.Builder; import lombok.Data; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import java.math.BigDecimal; import java.util.List; /** @@ -22,61 +18,62 @@ import java.util.List; public class StoreProdDemandVO { @NotNull(message = "档口ID不能为空") - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) private Long storeId; @NotNull(message = "档口工厂ID不能为空") - @ApiModelProperty(name = "档口工厂ID") + @ApiModelProperty(value = "档口工厂ID", required = true) private Long storeFactoryId; @NotNull(message = "需求列表不能为空") - @ApiModelProperty(name = "需求列表") + @ApiModelProperty(value = "需求列表", required = true) private List detailList; @Data + @ApiModel(value = "需求列表") public static class DetailVO { @NotNull(message = "档口商品ID不能为空") - @ApiModelProperty(name = "档口商品ID") + @ApiModelProperty(value = "档口商品ID", required = true) private Long storeProdId; @NotNull(message = "档口商品颜色ID不能为空") - @ApiModelProperty(name = "档口商品颜色ID") + @ApiModelProperty(value = "档口商品颜色ID", required = true) private Long storeProdColorId; @NotBlank(message = "货号不能为空") - @ApiModelProperty(name = "货号") + @ApiModelProperty(value = "货号", required = true) private String prodArtNum; @NotBlank(message = "颜色不能为空") - @ApiModelProperty(name = "颜色") + @ApiModelProperty(value = "颜色", required = true) private String colorName; @NotBlank(message = "是否紧急单不能为空") - @ApiModelProperty(name = "是否紧急单", notes = "2=正常,1=紧急") + @ApiModelProperty(value = "是否紧急单:2=正常,1=紧急", required = true) private Integer emergency; - @ApiModelProperty(name = "总的数量") + @ApiModelProperty(value = "总的数量") private Integer quantity; - @ApiModelProperty(name = "尺码30") + @ApiModelProperty(value = "尺码30") private Integer size30; - @ApiModelProperty(name = "尺码31") + @ApiModelProperty(value = "尺码31") private Integer size31; - @ApiModelProperty(name = "尺码32") + @ApiModelProperty(value = "尺码32") private Integer size32; - @ApiModelProperty(name = "尺码33") + @ApiModelProperty(value = "尺码33") private Integer size33; - @ApiModelProperty(name = "尺码34") + @ApiModelProperty(value = "尺码34") private Integer size34; - @ApiModelProperty(name = "尺码35") + @ApiModelProperty(value = "尺码35") private Integer size35; - @ApiModelProperty(name = "尺码36") + @ApiModelProperty(value = "尺码36") private Integer size36; - @ApiModelProperty(name = "尺码37") + @ApiModelProperty(value = "尺码37") private Integer size37; - @ApiModelProperty(name = "尺码38") + @ApiModelProperty(value = "尺码38") private Integer size38; - @ApiModelProperty(name = "尺码39") + @ApiModelProperty(value = "尺码39") private Integer size39; - @ApiModelProperty(name = "尺码40") + @ApiModelProperty(value = "尺码40") private Integer size40; - @ApiModelProperty(name = "尺码41") + @ApiModelProperty(value = "尺码41") private Integer size41; - @ApiModelProperty(name = "尺码42") + @ApiModelProperty(value = "尺码42") private Integer size42; - @ApiModelProperty(name = "尺码43") + @ApiModelProperty(value = "尺码43") private Integer size43; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandWorkingVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandWorkingVO.java new file mode 100644 index 000000000..a0b2c4ed1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemand/StoreProdDemandWorkingVO.java @@ -0,0 +1,29 @@ +package com.ruoyi.web.controller.xkt.vo.storeProductDemand; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口需求安排生产") +@Data +public class StoreProdDemandWorkingVO { + + @ApiModelProperty(value = "档口ID", required = true) + @NotNull(message = "档口ID不能为空") + private Long storeId; + @NotNull(message = "档口需求明细ID不能为空") + @ApiModelProperty(value = "档口需求明细ID", required = true) + private List storeProdDemandDetailIdList; + @NotNull(message = "是否导出生产单不能为空") + @ApiModelProperty(value = "是否导出生产单", required = true) + private Boolean download; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductFile/StoreProdFilePicSpaceResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductFile/StoreProdFilePicSpaceResVO.java index 0d4232965..a7f805d43 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductFile/StoreProdFilePicSpaceResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductFile/StoreProdFilePicSpaceResVO.java @@ -15,11 +15,11 @@ import lombok.Data; @Builder public class StoreProdFilePicSpaceResVO { - @ApiModelProperty(name = "档口商品ID") + @ApiModelProperty(value = "档口商品ID") private Long storeProdId; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "文件路径") + @ApiModelProperty(value = "文件路径") private String fileUrl; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeQuickFunction/StoreQuickFuncVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeQuickFunction/StoreQuickFuncVO.java index 5bd4acbf0..79726fe6d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeQuickFunction/StoreQuickFuncVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeQuickFunction/StoreQuickFuncVO.java @@ -21,27 +21,28 @@ import java.util.List; @AllArgsConstructor public class StoreQuickFuncVO { - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空!") private Long storeId; - @ApiModelProperty(name = "档口勾选的快捷功能") + @ApiModelProperty(value = "档口勾选的快捷功能", required = true) @NotNull(message = "档口勾选的快捷功能不能为空!") private List checkedList; - @ApiModelProperty(name = "系统所有的二级菜单列表") + @ApiModelProperty(value = "系统所有的二级菜单列表") private List menuList; @Data + @ApiModel(value = "快捷功能菜单") @RequiredArgsConstructor public static class QuickFuncDetailVO { - @ApiModelProperty(name = "菜单名称") + @ApiModelProperty(value = "菜单名称") private String menuName; - @ApiModelProperty(name = "显示顺序") + @ApiModelProperty(value = "显示顺序") private Integer orderNum; - @ApiModelProperty(name = "路由地址") + @ApiModelProperty(value = "路由地址") private String path; - @ApiModelProperty(name = "组件路径") + @ApiModelProperty(value = "组件路径") private String component; - @ApiModelProperty(name = "菜单图标") + @ApiModelProperty(value = "菜单图标") private String icon; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSalePageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSalePageVO.java index 2e52041ca..76ecd27c2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSalePageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSalePageVO.java @@ -21,22 +21,22 @@ import java.util.Date; public class StoreSalePageVO extends BasePageVO { @NotNull(message = "档口ID不能为空") - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) private Long storeId; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "客户名称") + @ApiModelProperty(value = "客户名称") private String cusName; - @ApiModelProperty(name = "销售类型", notes = "销售、退货、销售/退货 1 2 3") + @ApiModelProperty(value = "销售类型", notes = "销售、退货、销售/退货 1 2 3") private Integer saleType; - @ApiModelProperty(name = "结款状态") + @ApiModelProperty(value = "结款状态") private Integer paymentStatus; - @ApiModelProperty(name = "支付方式") + @ApiModelProperty(value = "支付方式") private Integer payWay; - @ApiModelProperty(name = "销售开始时间") + @ApiModelProperty(value = "销售开始时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTimeStart; - @ApiModelProperty(name = "销售结束时间") + @ApiModelProperty(value = "销售结束时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTimeEnd; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSalePayStatusVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSalePayStatusVO.java index 13d1e2eea..bb7129361 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSalePayStatusVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSalePayStatusVO.java @@ -18,7 +18,7 @@ import java.util.List; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreSalePayStatusVO { - @ApiModelProperty(name = "结算的storeSaleId列表") + @ApiModelProperty(value = "结算的storeSaleId列表", required = true) @NotNull(message = "结算的storeSaleId列表不能为空!") private List storeSaleIdList; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSaleVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSaleVO.java index 0db94fe9d..76b591dec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSaleVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSale/StoreSaleVO.java @@ -22,62 +22,62 @@ import java.util.List; public class StoreSaleVO { @NotNull(message = "是否为返单不能为空!") - @ApiModelProperty(name = "是否为返单", notes = "true 是返单 false 不是返单") + @ApiModelProperty(value = "是否为返单:true 是返单 false 不是返单", required = true) private Boolean refund; - @ApiModelProperty(name = "storeSaleId", notes = "新增为空,编辑必传") + @ApiModelProperty(value = "storeSaleId", notes = "新增为空,编辑必传") private Long storeSaleId; - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(value = "档口ID", required = true) @NotNull(message = "档口ID不能为空!") private Long storeId; - @ApiModelProperty(name = "档口客户ID") + @ApiModelProperty(value = "档口客户ID", required = true) @NotNull(message = "档口客户ID不能为空!") private Long storeCusId; - @ApiModelProperty(name = "档口客户名称") + @ApiModelProperty(value = "档口客户名称", required = true) @NotBlank(message = "档口客户名称不能为空!") private String storeCusName; - @ApiModelProperty(name = "销售类型(销售 1、退货 2、销售/退货 3)") + @ApiModelProperty(value = "销售类型(销售 1、退货 2、销售/退货 3)", required = true) @NotBlank(message = "销售类型不能为空!") private Integer saleType; @NotBlank(message = "支付方式不能为空!") - @ApiModelProperty(name = "支付方式(支付宝、微信、现金、欠款)ALIPAY WECHAT_PAY CASH DEBT") + @ApiModelProperty(value = "支付方式(1支付宝、2微信、3现金、4欠款)", required = true) private Integer payWay; - @ApiModelProperty(name = "结款状态(已结清、欠款) SETTLED、DEBT") + @ApiModelProperty(value = "结款状态(已结清、欠款) SETTLED、DEBT") private Integer paymentStatus; @NotNull(message = "销售详情列表不能为空!") @Valid - @ApiModelProperty(name = "销售详情列表") + @ApiModelProperty(value = "销售详情列表", required = true) private List detailList; - @Data + @ApiModel(value = "销售详情列表") public static class SaleDetailVO { @NotNull(message = "档口商品ID不能为空!") - @ApiModelProperty(name = "档口商品ID") + @ApiModelProperty(value = "档口商品ID", required = true) private Long storeProdId; @NotNull(message = "档口商品颜色尺码ID不能为空!") - @ApiModelProperty(name = "档口商品颜色尺码ID") + @ApiModelProperty(value = "档口商品颜色尺码ID", required = true) private Long storeProdColorId; - @ApiModelProperty(name = "颜色") + @ApiModelProperty(value = "颜色") private String colorName; - @ApiModelProperty(name = "尺码") + @ApiModelProperty(value = "尺码") private Integer size; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(value = "商品货号", required = true) @NotBlank(message = "商品货号不能为空!") private String prodArtNum; - @ApiModelProperty(name = "销售条码") + @ApiModelProperty(value = "销售条码") private String sns; @NotNull(message = "销售单价不能为空!") - @ApiModelProperty(name = "销售单价") + @ApiModelProperty(value = "销售单价", required = true) private BigDecimal price; - @ApiModelProperty(name = "给客户优惠后单价") + @ApiModelProperty(value = "给客户优惠后单价") private BigDecimal discountedPrice; - @ApiModelProperty(name = "数量") + @ApiModelProperty(value = "数量", required = true) @NotNull(message = "数量不能为空!") private Integer quantity; @NotNull(message = "总金额不能为空!") - @ApiModelProperty(name = "总金额") + @ApiModelProperty(value = "总金额", required = true) private BigDecimal amount; - @ApiModelProperty(name = "其它优惠") + @ApiModelProperty(value = "其它优惠") private BigDecimal otherDiscount; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSaleRefundRecord/StoreSaleRefundRecordVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSaleRefundRecord/StoreSaleRefundRecordVO.java index 194b22381..ad257654a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSaleRefundRecord/StoreSaleRefundRecordVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeSaleRefundRecord/StoreSaleRefundRecordVO.java @@ -23,17 +23,17 @@ public class StoreSaleRefundRecordVO { @ApiModelProperty("返单ID") private Long storeSaleRefundRecordId; - @ApiModelProperty(name = "单据编号") + @ApiModelProperty(value = "单据编号") private String code; - @ApiModelProperty(name = "档口销售客户名称") + @ApiModelProperty(value = "档口销售客户名称") private String storeCusName; @JsonFormat(pattern = "HH:mm", timezone = "GMT+8") private Date createTime; - @ApiModelProperty(name = "支付方式(支付宝、微信、现金、欠款)ALIPAY WECHAT_PAY CASH DEBT") + @ApiModelProperty(value = "支付方式(支付宝、微信、现金、欠款)ALIPAY WECHAT_PAY CASH DEBT") private Integer payWay; - @ApiModelProperty(name = "数量") + @ApiModelProperty(value = "数量") private Integer quantity; - @ApiModelProperty(name = "总金额") + @ApiModelProperty(value = "总金额") private BigDecimal amount; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDemandDeduct.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDemandDeduct.java index c50c7b2db..5561a9ea5 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDemandDeduct.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDemandDeduct.java @@ -1,11 +1,11 @@ package com.ruoyi.xkt.domain; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.XktBaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -17,7 +17,9 @@ import org.apache.commons.lang3.builder.ToStringStyle; */ @EqualsAndHashCode(callSuper = true) @Data +@Accessors(chain = true) public class StoreProductStorageDemandDeduct extends XktBaseEntity { + private static final long serialVersionUID = 1L; /** @@ -44,12 +46,6 @@ public class StoreProductStorageDemandDeduct extends XktBaseEntity { @Excel(name = "档口商品颜色ID") private Long storeProdColorId; - /** - * 档口商品ID - */ - @Excel(name = "档口商品ID") - private Long storeProdId; - /** * 入库code */ @@ -68,90 +64,9 @@ public class StoreProductStorageDemandDeduct extends XktBaseEntity { private Integer quantity; /** - * 尺码30 + * 尺码 */ - @Excel(name = "尺码30") - @TableField("size_30") - private Integer size30; - /** - * 尺码31 - */ - @Excel(name = "尺码31") - @TableField("size_31") - private Integer size31; - /** - * 尺码32 - */ - @Excel(name = "尺码32") - @TableField("size_32") - private Integer size32; - /** - * 尺码33 - */ - @Excel(name = "尺码33") - @TableField("size_33") - private Integer size33; - /** - * 尺码34 - */ - - @Excel(name = "尺码34") - @TableField("size_34") - private Integer size34; - /** - * 尺码35 - */ - @Excel(name = "尺码35") - @TableField("size_35") - private Integer size35; - /** - * 尺码36 - */ - @Excel(name = "尺码36") - @TableField("size_36") - private Integer size36; - /** - * 尺码37 - */ - @Excel(name = "尺码37") - @TableField("size_37") - private Integer size37; - /** - * 尺码38 - */ - @Excel(name = "尺码38") - @TableField("size_38") - private Integer size38; - /** - * 尺码39 - */ - @Excel(name = "尺码39") - @TableField("size_39") - private Integer size39; - /** - * 尺码40 - */ - @Excel(name = "尺码40") - @TableField("size_40") - private Integer size40; - /** - * 尺码41 - */ - @Excel(name = "尺码41") - @TableField("size_41") - private Integer size41; - /** - * 尺码42 - */ - @Excel(name = "尺码42") - @TableField("size_42") - private Integer size42; - /** - * 尺码43 - */ - @Excel(name = "尺码43") - @TableField("size_43") - private Integer size43; + private Integer size; /** * 备注说明 @@ -166,23 +81,9 @@ public class StoreProductStorageDemandDeduct extends XktBaseEntity { .append("storeProdStorDetailId", getStoreProdStorageDetailId()) .append("storeProdDemandId", getStoreProdDemandDetailId()) .append("storeProdColorId", getStoreProdColorId()) - .append("storeProdId", getStoreProdId()) .append("storageCode", getStorageCode()) .append("demandCode", getDemandCode()) - .append("size30", getSize30()) - .append("size31", getSize31()) - .append("size32", getSize32()) - .append("size33", getSize33()) - .append("size34", getSize34()) - .append("size35", getSize35()) - .append("size36", getSize36()) - .append("size37", getSize37()) - .append("size38", getSize38()) - .append("size39", getSize39()) - .append("size40", getSize40()) - .append("size41", getSize41()) - .append("size42", getSize42()) - .append("size43", getSize43()) + .append("size", getSize()) .append("version", getVersion()) .append("delFlag", getDelFlag()) .append("createBy", getCreateBy()) diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDemandDeductNew.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDemandDeductNew.java deleted file mode 100644 index 277521033..000000000 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDemandDeductNew.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.ruoyi.xkt.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.ruoyi.common.annotation.Excel; -import com.ruoyi.common.core.domain.XktBaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; - -/** - * 档口商品入库抵扣需求对象 store_product_storage_demand_deducte - * - * @author ruoyi - * @date 2025-03-26 - */ -@EqualsAndHashCode(callSuper = true) -@Data -@Accessors(chain = true) -public class StoreProductStorageDemandDeductNew extends XktBaseEntity { - - private static final long serialVersionUID = 1L; - - /** - * 档口商品入库抵扣需求ID - */ - @TableId - private Long id; - - /** - * 档口商品入库明细ID - */ - @Excel(name = "档口商品入库明细ID") - private Long storeProdStorageDetailId; - - /** - * 档口商品需求明细ID - */ - @Excel(name = "档口商品需求明细ID") - private Long storeProdDemandDetailId; - - /** - * 档口商品颜色ID - */ - @Excel(name = "档口商品颜色ID") - private Long storeProdColorId; - - /** - * 入库code - */ - @Excel(name = "入库code") - private String storageCode; - - /** - * 需求code - */ - @Excel(name = "需求code") - private String demandCode; - - /** - * 总的数量 - */ - private Integer quantity; - - /** - * 尺码 - */ - private Integer size; - - /** - * 备注说明 - */ - private String remark; - - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("storeProdStorDetailId", getStoreProdStorageDetailId()) - .append("storeProdDemandId", getStoreProdDemandDetailId()) - .append("storeProdColorId", getStoreProdColorId()) - .append("storageCode", getStorageCode()) - .append("demandCode", getDemandCode()) - .append("size", getSize()) - .append("version", getVersion()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } -} diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDetail.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDetail.java index 6baf9fb75..fbf6c139c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDetail.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductStorageDetail.java @@ -71,11 +71,6 @@ public class StoreProductStorageDetail extends XktBaseEntity { @Excel(name = "总的生产价格") private BigDecimal produceAmount; - /** - * 抵扣状态:0.未抵扣 1.部分抵扣 2.已抵扣 - */ - private Integer deductStatus; - /** * 尺码30 */ diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeColor/StoreColorDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeColor/StoreColorDTO.java index 5919d539d..ad865c05c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeColor/StoreColorDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeColor/StoreColorDTO.java @@ -3,6 +3,7 @@ package com.ruoyi.xkt.dto.storeColor; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.experimental.Accessors; /** * @author liujiang @@ -11,6 +12,7 @@ import lombok.Data; */ @ApiModel("档口所有颜色") @Data +@Accessors(chain = true) public class StoreColorDTO { @ApiModelProperty(name = "档口颜色ID") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdStorage/StoreProdStoragePageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdStorage/StoreProdStoragePageResDTO.java index f8d8509c5..835568d89 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdStorage/StoreProdStoragePageResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdStorage/StoreProdStoragePageResDTO.java @@ -17,8 +17,8 @@ import java.util.Date; @Data public class StoreProdStoragePageResDTO { - @ApiModelProperty(name = "storeProdStorId") - private Long storeProdStorId; + @ApiModelProperty(name = "storeProdStorageId") + private Long storeProdStorageId; @ApiModelProperty(name = "档口ID") private Long storeId; @ApiModelProperty(name = "单据编号") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdStorage/StoreProdStorageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdStorage/StoreProdStorageResDTO.java index 5f7bf4172..a7ffc5fc2 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdStorage/StoreProdStorageResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdStorage/StoreProdStorageResDTO.java @@ -23,8 +23,7 @@ import java.util.List; @Accessors(chain = true) public class StoreProdStorageResDTO { - @ApiModelProperty(name = "storeProdStorId") - @JsonProperty("storeProdStorId") + @ApiModelProperty(name = "storeProdStorageId") private Long id; @ApiModelProperty(name = "档口ID") private Long storeId; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageDTO.java index b2573fc5e..752f80a25 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageDTO.java @@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.NotNull; + /** * @author liujiang * @version v1.0 @@ -22,5 +24,7 @@ public class StoreProdPageDTO extends BasePageDTO { private Long prodCateId; @ApiModelProperty(name = "档口ID") private Long storeId; + @ApiModelProperty(name = "商品状态") + private Integer prodStatus; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageResDTO.java index 63e875f97..7bfaa6cac 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageResDTO.java @@ -20,28 +20,28 @@ import java.util.List; @Accessors(chain = true) public class StoreProdPageResDTO { - @ApiModelProperty(name = "档口商品ID") + @ApiModelProperty(name = "档口商品ID", value = "档口商品ID") private Long storeProdId; - @ApiModelProperty(name = "档口ID") + @ApiModelProperty(name = "档口ID", value = "档口ID") private Long storeId; - @ApiModelProperty(name = "档口商品主图url") + @ApiModelProperty(name = "档口商品主图url", value = "档口商品主图url") private String mainPicUrl; - @ApiModelProperty(name = "商品货号") + @ApiModelProperty(name = "商品货号", value = "商品货号") private String prodArtNum; - @ApiModelProperty(name = "颜色") + @ApiModelProperty(name = "颜色", value = "颜色") private String colorName; private Long prodCateId; - @ApiModelProperty(name = "分类类目") + @ApiModelProperty(name = "分类类目", value = "分类类目") private String prodCateName; - @ApiModelProperty(name = "标准尺码") + @ApiModelProperty(name = "标准尺码", value = "标准尺码") private List standardSizeList; - @ApiModelProperty(name = "销售金额(元)") + @ApiModelProperty(name = "销售金额(元)", value = "销售金额(元)") private BigDecimal price; - @ApiModelProperty(name = "状态") + @ApiModelProperty(name = "状态", value = "状态:1未发布,2在售,3尾货,4已下架,5已删除") private Integer prodStatus; - @ApiModelProperty(name = "创建时间") + @ApiModelProperty(name = "创建时间", value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemand/StoreProdDemandPageDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemand/StoreProdDemandPageDTO.java index 056bc9e94..2225f4600 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemand/StoreProdDemandPageDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemand/StoreProdDemandPageDTO.java @@ -21,6 +21,8 @@ public class StoreProdDemandPageDTO extends BasePageDTO { @ApiModelProperty(name = "档口ID") @NotNull(message = "档口ID不能为空") private Long storeId; + @ApiModelProperty(name = "需求状态" ,notes = "1 待生产 2 生产中 3 生产完成") + private Integer demandStatus; @ApiModelProperty(name = "档口工厂ID") private Long storeFactoryId; @ApiModelProperty(name = "商品货号") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemand/StoreProdDemandWorkingDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemand/StoreProdDemandWorkingDTO.java new file mode 100644 index 000000000..d6143462c --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemand/StoreProdDemandWorkingDTO.java @@ -0,0 +1,25 @@ +package com.ruoyi.xkt.dto.storeProductDemand; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口需求安排生产") +@Data +public class StoreProdDemandWorkingDTO { + + @ApiModelProperty(name = "档口ID") + private Long storeId; + @ApiModelProperty(name = "档口需求明细ID") + private List storeProdDemandDetailIdList; + @ApiModelProperty(name = "是否导出生产单") + private Boolean download; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStorageDemandDeductMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStorageDemandDeductMapper.java index b9e722f8a..6a016435d 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStorageDemandDeductMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStorageDemandDeductMapper.java @@ -3,8 +3,6 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.StoreProductStorageDemandDeduct; -import java.util.List; - /** * 档口商品入库抵扣需求Mapper接口 * @@ -12,51 +10,5 @@ import java.util.List; * @date 2025-03-26 */ public interface StoreProductStorageDemandDeductMapper extends BaseMapper { - /** - * 查询档口商品入库抵扣需求 - * - * @param id 档口商品入库抵扣需求主键 - * @return 档口商品入库抵扣需求 - */ - public StoreProductStorageDemandDeduct selectStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(Long id); - /** - * 查询档口商品入库抵扣需求列表 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 档口商品入库抵扣需求集合 - */ - public List selectStoreProductStorageDemandDeducteList(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte); - - /** - * 新增档口商品入库抵扣需求 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 结果 - */ - public int insertStoreProductStorageDemandDeducte(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte); - - /** - * 修改档口商品入库抵扣需求 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 结果 - */ - public int updateStoreProductStorageDemandDeducte(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte); - - /** - * 删除档口商品入库抵扣需求 - * - * @param id 档口商品入库抵扣需求主键 - * @return 结果 - */ - public int deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(Long id); - - /** - * 批量删除档口商品入库抵扣需求 - * - * @param storeProdStorDemaDeducteIds 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteIds(Long[] storeProdStorDemaDeducteIds); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStorageDemandDeductNewMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStorageDemandDeductNewMapper.java deleted file mode 100644 index 67f811059..000000000 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStorageDemandDeductNewMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.ruoyi.xkt.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.xkt.domain.StoreProductStorageDemandDeductNew; - -/** - * 档口商品入库抵扣需求Mapper接口 - * - * @author ruoyi - * @date 2025-03-26 - */ -public interface StoreProductStorageDemandDeductNewMapper extends BaseMapper { - -} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreColorService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreColorService.java index 87fba9e99..c0982af4c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreColorService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreColorService.java @@ -1,6 +1,6 @@ package com.ruoyi.xkt.service; -import com.ruoyi.xkt.domain.StoreColor; +import com.ruoyi.xkt.dto.storeColor.StoreColorDTO; import java.util.List; @@ -11,51 +11,13 @@ import java.util.List; * @date 2025-03-26 */ public interface IStoreColorService { - /** - * 查询档口所有颜色 - * - * @param storeColorId 档口所有颜色主键 - * @return 档口所有颜色 - */ - public StoreColor selectStoreColorByStoreColorId(Long storeColorId); /** * 查询档口所有颜色列表 * - * @param storeColor 档口所有颜色 - * @return 档口所有颜色集合 + * @param storeId 档口ID + * @return List */ - public List selectStoreColorList(StoreColor storeColor); + List list(Long storeId); - /** - * 新增档口所有颜色 - * - * @param storeColor 档口所有颜色 - * @return 结果 - */ - public int insertStoreColor(StoreColor storeColor); - - /** - * 修改档口所有颜色 - * - * @param storeColor 档口所有颜色 - * @return 结果 - */ - public int updateStoreColor(StoreColor storeColor); - - /** - * 批量删除档口所有颜色 - * - * @param storeColorIds 需要删除的档口所有颜色主键集合 - * @return 结果 - */ - public int deleteStoreColorByStoreColorIds(Long[] storeColorIds); - - /** - * 删除档口所有颜色信息 - * - * @param storeColorId 档口所有颜色主键 - * @return 结果 - */ - public int deleteStoreColorByStoreColorId(Long storeColorId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductDemandService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductDemandService.java index 11f0975f8..b9f29fe16 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductDemandService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductDemandService.java @@ -2,10 +2,7 @@ package com.ruoyi.xkt.service; import com.ruoyi.common.core.page.Page; import com.ruoyi.xkt.domain.StoreProductDemand; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandPageDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandPageResDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandQuantityDTO; +import com.ruoyi.xkt.dto.storeProductDemand.*; import java.util.List; @@ -93,4 +90,14 @@ public interface IStoreProductDemandService { */ Page selectPage(StoreProdDemandPageDTO demandPageDTO); + /** + * 更新产品的生产状态 + * 此方法通过接收一个包含产品生产信息的DTO对象来更新数据库中对应产品的生产状态 + * 主要用于在生产流程中更新产品当前的加工状态或者生产阶段 + * + * @param workingDTO 包含产品生产信息的数据传输对象用于更新产品生产状态 + * @return + */ + Integer updateWorkingStatus(StoreProdDemandWorkingDTO workingDTO); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStorageDemandDeducteService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStorageDemandDeducteService.java index 5b544e803..1cb526c8d 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStorageDemandDeducteService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStorageDemandDeducteService.java @@ -1,9 +1,5 @@ package com.ruoyi.xkt.service; -import com.ruoyi.xkt.domain.StoreProductStorageDemandDeduct; - -import java.util.List; - /** * 档口商品入库抵扣需求Service接口 * @@ -11,51 +7,5 @@ import java.util.List; * @date 2025-03-26 */ public interface IStoreProductStorageDemandDeducteService { - /** - * 查询档口商品入库抵扣需求 - * - * @param storeProdStorDemaDeducteId 档口商品入库抵扣需求主键 - * @return 档口商品入库抵扣需求 - */ - public StoreProductStorageDemandDeduct selectStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(Long storeProdStorDemaDeducteId); - /** - * 查询档口商品入库抵扣需求列表 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 档口商品入库抵扣需求集合 - */ - public List selectStoreProductStorageDemandDeducteList(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte); - - /** - * 新增档口商品入库抵扣需求 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 结果 - */ - public int insertStoreProductStorageDemandDeducte(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte); - - /** - * 修改档口商品入库抵扣需求 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 结果 - */ - public int updateStoreProductStorageDemandDeducte(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte); - - /** - * 批量删除档口商品入库抵扣需求 - * - * @param storeProdStorDemaDeducteIds 需要删除的档口商品入库抵扣需求主键集合 - * @return 结果 - */ - public int deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteIds(Long[] storeProdStorDemaDeducteIds); - - /** - * 删除档口商品入库抵扣需求信息 - * - * @param storeProdStorDemaDeducteId 档口商品入库抵扣需求主键 - * @return 结果 - */ - public int deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(Long storeProdStorDemaDeducteId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStorageService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStorageService.java index 288d4f08b..e5b3e897e 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStorageService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStorageService.java @@ -17,10 +17,10 @@ public interface IStoreProductStorageService { /** * 查询档口商品入库 * - * @param storeProdStorId 档口商品入库主键 + * @param storeProdStorageId 档口商品入库主键 * @return 档口商品入库 */ - public StoreProdStorageResDTO selectByStoreProdStorId(Long storeProdStorId); + public StoreProdStorageResDTO selectByStoreProdStorageId(Long storeProdStorageId); /** * 新增档口商品入库 @@ -37,7 +37,7 @@ public interface IStoreProductStorageService { * @param storeProdStorageId 需要删除的档口商品入库主键集合 * @return 结果 */ - public int deleteByStoreProdStorId(Long storeProdStorageId); + public int deleteByStoreProdStorageId(Long storeProdStorageId); /** * 分页查询 diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreColorServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreColorServiceImpl.java index 458c3ddd9..bae9c4806 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreColorServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreColorServiceImpl.java @@ -1,14 +1,22 @@ package com.ruoyi.xkt.service.impl; -import com.ruoyi.common.utils.DateUtils; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.xkt.domain.StoreColor; +import com.ruoyi.xkt.dto.storeColor.StoreColorDTO; import com.ruoyi.xkt.mapper.StoreColorMapper; import com.ruoyi.xkt.service.IStoreColorService; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Comparator; import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; /** * 档口所有颜色Service业务层处理 @@ -17,81 +25,26 @@ import java.util.List; * @date 2025-03-26 */ @Service +@RequiredArgsConstructor public class StoreColorServiceImpl implements IStoreColorService { - @Autowired - private StoreColorMapper storeColorMapper; - /** - * 查询档口所有颜色 - * - * @param storeColorId 档口所有颜色主键 - * @return 档口所有颜色 - */ - @Override - @Transactional(readOnly = true) - public StoreColor selectStoreColorByStoreColorId(Long storeColorId) { - return storeColorMapper.selectStoreColorByStoreColorId(storeColorId); - } + final StoreColorMapper storeColorMapper; /** * 查询档口所有颜色列表 * - * @param storeColor 档口所有颜色 - * @return 档口所有颜色 + * @param storeId 档口ID + * @return List */ @Override @Transactional(readOnly = true) - public List selectStoreColorList(StoreColor storeColor) { - return storeColorMapper.selectStoreColorList(storeColor); + public List list(Long storeId) { + List storeColorList = Optional.ofNullable(this.storeColorMapper.selectList(new LambdaQueryWrapper() + .eq(StoreColor::getStoreId, storeId).eq(StoreColor::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("当前档口没有颜色!", HttpStatus.ERROR)); + return storeColorList.stream().map(x -> BeanUtil.toBean(x, StoreColorDTO.class).setStoreColorId(x.getId())) + .sorted(Comparator.comparing(StoreColorDTO::getOrderNum)).collect(Collectors.toList()); } - /** - * 新增档口所有颜色 - * - * @param storeColor 档口所有颜色 - * @return 结果 - */ - @Override - @Transactional - public int insertStoreColor(StoreColor storeColor) { - storeColor.setCreateTime(DateUtils.getNowDate()); - return storeColorMapper.insertStoreColor(storeColor); - } - /** - * 修改档口所有颜色 - * - * @param storeColor 档口所有颜色 - * @return 结果 - */ - @Override - @Transactional - public int updateStoreColor(StoreColor storeColor) { - storeColor.setUpdateTime(DateUtils.getNowDate()); - return storeColorMapper.updateStoreColor(storeColor); - } - - /** - * 批量删除档口所有颜色 - * - * @param storeColorIds 需要删除的档口所有颜色主键 - * @return 结果 - */ - @Override - @Transactional - public int deleteStoreColorByStoreColorIds(Long[] storeColorIds) { - return storeColorMapper.deleteStoreColorByStoreColorIds(storeColorIds); - } - - /** - * 删除档口所有颜色信息 - * - * @param storeColorId 档口所有颜色主键 - * @return 结果 - */ - @Override - @Transactional - public int deleteStoreColorByStoreColorId(Long storeColorId) { - return storeColorMapper.deleteStoreColorByStoreColorId(storeColorId); - } } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java index f3bea35ff..a6a0d7624 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java @@ -80,7 +80,8 @@ public class StoreCustomerServiceImpl implements IStoreCustomerService { @Transactional(readOnly = true) public Page selectPage(StoreCusPageDTO storeCusPageDTO) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .eq(StoreCustomer::getStoreId, storeCusPageDTO.getStoreId()).eq(StoreCustomer::getDelFlag, Constants.UNDELETED); + .eq(StoreCustomer::getStoreId, storeCusPageDTO.getStoreId()).eq(StoreCustomer::getDelFlag, Constants.UNDELETED) + .orderByDesc(StoreCustomer::getCreateTime); if (StringUtils.isNotBlank(storeCusPageDTO.getCusName())) { queryWrapper.like(StoreCustomer::getCusName, storeCusPageDTO.getCusName()); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductDemandServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductDemandServiceImpl.java index d107e1823..92e56b4d2 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductDemandServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductDemandServiceImpl.java @@ -5,14 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.page.Page; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.xkt.domain.*; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandPageDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandPageResDTO; -import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandQuantityDTO; +import com.ruoyi.xkt.dto.storeProductDemand.*; import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockDTO; +import com.ruoyi.xkt.enums.DemandStatus; import com.ruoyi.xkt.enums.EVoucherSequenceType; import com.ruoyi.xkt.mapper.*; import com.ruoyi.xkt.service.IStoreProductDemandService; @@ -20,6 +20,7 @@ import com.ruoyi.xkt.service.IVoucherSequenceService; import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.ibatis.executor.BatchResult; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -184,6 +185,26 @@ public class StoreProductDemandServiceImpl implements IStoreProductDemandService return Page.convert(new PageInfo<>(demandList)); } + /** + * 更新产品的生产状态 + * 此方法通过接收一个包含产品生产信息的DTO对象来更新数据库中对应产品的生产状态 + * 主要用于在生产流程中更新产品当前的加工状态或者生产阶段 + * + * @param workingDTO 包含产品生产信息的数据传输对象用于更新产品生产状态 + * @return + */ + @Override + @Transactional + public Integer updateWorkingStatus(StoreProdDemandWorkingDTO workingDTO) { + List demandDetailList = Optional.ofNullable(this.storeProdDemandDetailMapper.selectList(new LambdaQueryWrapper() + .eq(StoreProductDemandDetail::getStoreId, workingDTO.getStoreId()).eq(StoreProductDemandDetail::getDelFlag, Constants.UNDELETED) + .in(StoreProductDemandDetail::getId, workingDTO.getStoreProdDemandDetailIdList()))) + .orElseThrow(() -> new ServiceException("需求单明细不存在!", HttpStatus.ERROR)); + demandDetailList.forEach(x -> x.setDetailStatus(DemandStatus.IN_PRODUCTION.getValue())); + List list = this.storeProdDemandDetailMapper.updateById(demandDetailList); + return list.size(); + } + /** * 查询档口商品需求单 @@ -192,6 +213,7 @@ public class StoreProductDemandServiceImpl implements IStoreProductDemandService * @return 档口商品需求单 */ @Override + @Transactional(readOnly = true) public StoreProductDemand selectStoreProductDemandByStoreProdDemandId(Long storeProdDemandId) { return storeProdDemandMapper.selectStoreProductDemandByStoreProdDemandId(storeProdDemandId); } @@ -203,6 +225,7 @@ public class StoreProductDemandServiceImpl implements IStoreProductDemandService * @return 档口商品需求单 */ @Override + @Transactional(readOnly = true) public List selectStoreProductDemandList(StoreProductDemand storeProductDemand) { return storeProdDemandMapper.selectStoreProductDemandList(storeProductDemand); } @@ -214,6 +237,7 @@ public class StoreProductDemandServiceImpl implements IStoreProductDemandService * @return 结果 */ @Override + @Transactional public int insertStoreProductDemand(StoreProductDemand storeProductDemand) { storeProductDemand.setCreateTime(DateUtils.getNowDate()); return storeProdDemandMapper.insertStoreProductDemand(storeProductDemand); @@ -239,6 +263,7 @@ public class StoreProductDemandServiceImpl implements IStoreProductDemandService * @return 结果 */ @Override + @Transactional public int deleteStoreProductDemandByStoreProdDemandIds(Long[] storeProdDemandIds) { return storeProdDemandMapper.deleteStoreProductDemandByStoreProdDemandIds(storeProdDemandIds); } @@ -250,6 +275,7 @@ public class StoreProductDemandServiceImpl implements IStoreProductDemandService * @return 结果 */ @Override + @Transactional public int deleteStoreProductDemandByStoreProdDemandId(Long storeProdDemandId) { return storeProdDemandMapper.deleteStoreProductDemandByStoreProdDemandId(storeProdDemandId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStorageDemandDeducteServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStorageDemandDeducteServiceImpl.java index 5eb114e51..70ccea6e6 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStorageDemandDeducteServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStorageDemandDeducteServiceImpl.java @@ -1,14 +1,9 @@ package com.ruoyi.xkt.service.impl; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.xkt.domain.StoreProductStorageDemandDeduct; import com.ruoyi.xkt.mapper.StoreProductStorageDemandDeductMapper; import com.ruoyi.xkt.service.IStoreProductStorageDemandDeducteService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; /** * 档口商品入库抵扣需求Service业务层处理 @@ -21,77 +16,5 @@ public class StoreProductStorageDemandDeducteServiceImpl implements IStoreProduc @Autowired private StoreProductStorageDemandDeductMapper storeProductStorageDemandDeducteMapper; - /** - * 查询档口商品入库抵扣需求 - * - * @param storeProdStorDemaDeducteId 档口商品入库抵扣需求主键 - * @return 档口商品入库抵扣需求 - */ - @Override - @Transactional(readOnly = true) - public StoreProductStorageDemandDeduct selectStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(Long storeProdStorDemaDeducteId) { - return storeProductStorageDemandDeducteMapper.selectStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(storeProdStorDemaDeducteId); - } - /** - * 查询档口商品入库抵扣需求列表 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 档口商品入库抵扣需求 - */ - @Override - @Transactional(readOnly = true) - public List selectStoreProductStorageDemandDeducteList(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte) { - return storeProductStorageDemandDeducteMapper.selectStoreProductStorageDemandDeducteList(storeProductStorageDemandDeducte); - } - - /** - * 新增档口商品入库抵扣需求 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 结果 - */ - @Override - @Transactional - public int insertStoreProductStorageDemandDeducte(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte) { - storeProductStorageDemandDeducte.setCreateTime(DateUtils.getNowDate()); - return storeProductStorageDemandDeducteMapper.insertStoreProductStorageDemandDeducte(storeProductStorageDemandDeducte); - } - - /** - * 修改档口商品入库抵扣需求 - * - * @param storeProductStorageDemandDeducte 档口商品入库抵扣需求 - * @return 结果 - */ - @Override - @Transactional - public int updateStoreProductStorageDemandDeducte(StoreProductStorageDemandDeduct storeProductStorageDemandDeducte) { - storeProductStorageDemandDeducte.setUpdateTime(DateUtils.getNowDate()); - return storeProductStorageDemandDeducteMapper.updateStoreProductStorageDemandDeducte(storeProductStorageDemandDeducte); - } - - /** - * 批量删除档口商品入库抵扣需求 - * - * @param storeProdStorDemaDeducteIds 需要删除的档口商品入库抵扣需求主键 - * @return 结果 - */ - @Override - @Transactional - public int deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteIds(Long[] storeProdStorDemaDeducteIds) { - return storeProductStorageDemandDeducteMapper.deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteIds(storeProdStorDemaDeducteIds); - } - - /** - * 删除档口商品入库抵扣需求信息 - * - * @param storeProdStorDemaDeducteId 档口商品入库抵扣需求主键 - * @return 结果 - */ - @Override - @Transactional - public int deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(Long storeProdStorDemaDeducteId) { - return storeProductStorageDemandDeducteMapper.deleteStoreProductStorageDemandDeducteByStoreProdStorDemaDeducteId(storeProdStorDemaDeducteId); - } } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStorageServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStorageServiceImpl.java index acd5ef707..ba3202809 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStorageServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStorageServiceImpl.java @@ -11,16 +11,14 @@ import com.ruoyi.common.core.page.Page; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.xkt.domain.StoreProductDemandDetail; -import com.ruoyi.xkt.domain.StoreProductStorage; -import com.ruoyi.xkt.domain.StoreProductStorageDemandDeductNew; -import com.ruoyi.xkt.domain.StoreProductStorageDetail; +import com.ruoyi.xkt.domain.*; import com.ruoyi.xkt.dto.storeProdStorage.StoreProdStorageDTO; import com.ruoyi.xkt.dto.storeProdStorage.StoreProdStoragePageDTO; import com.ruoyi.xkt.dto.storeProdStorage.StoreProdStoragePageResDTO; import com.ruoyi.xkt.dto.storeProdStorage.StoreProdStorageResDTO; import com.ruoyi.xkt.dto.storeProductDemand.StoreProdDemandSimpleDTO; import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockDTO; +import com.ruoyi.xkt.enums.DemandStatus; import com.ruoyi.xkt.enums.EVoucherSequenceType; import com.ruoyi.xkt.mapper.*; import com.ruoyi.xkt.service.IStoreProductStockService; @@ -54,7 +52,6 @@ public class StoreProductStorageServiceImpl implements IStoreProductStorageServi final StoreProductDemandDetailMapper demandDetailMapper; final StoreProductDemandMapper demandMapper; final StoreProductStorageDemandDeductMapper deductMapper; - final StoreProductStorageDemandDeductNewMapper deductNewMapper; /** @@ -100,25 +97,373 @@ public class StoreProductStorageServiceImpl implements IStoreProductStorageServi List increaseStockList = BeanUtil.copyToList(detailList, StoreProdStockDTO.class); // 增加档口商品的库存 this.stockService.increaseStock(storeProdStorageDTO.getStoreId(), increaseStockList); + // 处理档口商品需求单的抵扣 + this.handleStorageDemandDeduct(storeProdStorageDTO.getStoreId(), storeProdStorage.getCode(), detailList); + return count; + } + /** + * 处理库存抵扣需求 + * 该方法用于根据入库明细列表来抵扣相应的产品需求量 + * + * @param storeId 店铺ID + * @param storageCode 入库单号 + * @param detailList 入库明细列表 + */ + private void handleStorageDemandDeduct(Long storeId, String storageCode, List detailList) { // 根据明细列表找到所有提交的需求 List demandDetailList = this.demandDetailMapper.selectList(new LambdaQueryWrapper() - .eq(StoreProductDemandDetail::getStoreId, storeProdStorageDTO.getStoreId()).eq(StoreProductDemandDetail::getDelFlag, Constants.UNDELETED) - .in(StoreProductDemandDetail::getDetailStatus, Arrays.asList(1, 2)) + .eq(StoreProductDemandDetail::getStoreId, storeId).eq(StoreProductDemandDetail::getDelFlag, Constants.UNDELETED) + .in(StoreProductDemandDetail::getDetailStatus, Arrays.asList(DemandStatus.PENDING_PRODUCTION.getValue(), DemandStatus.IN_PRODUCTION.getValue())) .in(StoreProductDemandDetail::getStoreProdColorId, detailList.stream().map(StoreProductStorageDetail::getStoreProdColorId).collect(Collectors.toList()))); // 若没有任何需求则不抵扣,直接结束流程 if (CollectionUtils.isEmpty(demandDetailList)) { - return count; + return; } // 所有的需求单ID列表 final List demandIdList = demandDetailList.stream().map(StoreProductDemandDetail::getStoreProdDemandId).distinct().collect(Collectors.toList()); - List deductedNewList = this.deductNewMapper.selectList(new LambdaQueryWrapper() - .in(StoreProductStorageDemandDeductNew::getStoreProdColorId, detailList.stream().map(StoreProductStorageDetail::getStoreProdColorId).collect(Collectors.toList())) - .eq(StoreProductStorageDemandDeductNew::getDelFlag, Constants.UNDELETED)); - // 已存在的需求抵扣明细列表 - Map> deductedExistsMap = deductedNewList.stream().collect(Collectors.groupingBy(StoreProductStorageDemandDeductNew::getStoreProdColorId, - Collectors.groupingBy(StoreProductStorageDemandDeductNew::getSize, Collectors.summingInt(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0))))); + // 所有颜色尺码需要抵扣的需求数量 + Map>> unDeductMap = this.getUnDeductMap(demandDetailList, detailList); + if (MapUtils.isEmpty(unDeductMap)) { + return; + } + // 按照入库明细列表依次进行需求数量扣减 + Map>> storageQuantityMap = this.getStorageQuantityMap(detailList); + if (MapUtils.isEmpty(storageQuantityMap)) { + return; + } + // 按照入库的数量明细依次判断哪些需求订单明细还未抵扣完毕 + Map>>> totalMatchMap = this.getTotalMatchMap(storageQuantityMap, unDeductMap); + if (MapUtils.isEmpty(totalMatchMap)) { + return; + } + // 新增入库与需求的抵扣关系 + List updateDetailIdList = this.createDemandDeduct(storageCode, demandDetailList, totalMatchMap); + // 根据最新的数据更新需求单的抵扣状态 + this.updateLatestDemandStatus(updateDetailIdList, demandIdList, totalMatchMap); + } + /** + * 查询档口商品入库 + * + * @param storeProdStorageId 档口商品入库主键 + * @return 档口商品入库 + */ + @Override + @Transactional(readOnly = true) + public StoreProdStorageResDTO selectByStoreProdStorageId(Long storeProdStorageId) { + // 档口商品入库 + StoreProductStorage storage = Optional.ofNullable(this.storageMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProductStorage::getId, storeProdStorageId).eq(StoreProductStorage::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("档口商品入库不存在!", HttpStatus.ERROR)); + // 档口商品入库明细 + List storageDetailList = storageDetailMapper.selectList(new LambdaQueryWrapper() + .eq(StoreProductStorageDetail::getStoreProdStorId, storeProdStorageId).eq(StoreProductStorageDetail::getDelFlag, Constants.UNDELETED)); + return BeanUtil.toBean(storage, StoreProdStorageResDTO.class) + .setDetailList(storageDetailList.stream().map(x -> BeanUtil.toBean(x, StoreProdStorageResDTO.StorageDetailDTO.class)).collect(Collectors.toList())); + } + + + /** + * 根据档口商品入库ID删除入库信息 + *

+ * 此方法通过删除关联的入库明细和更新商品库存来处理删除操作 + * 它首先确保入库信息存在且未被删除,然后标记为已删除 + * 接着,它更新所有相关的入库明细,并减少相应商品的库存 + * 最后,它删除与入库信息相关的中间表记录 + * + * @param storeProdStorageId 档口商品入库ID + * @return 删除的行数 + * @throws ServiceException 如果档口商品入库不存在 + */ + @Override + @Transactional + public int deleteByStoreProdStorageId(Long storeProdStorageId) { + // 档口商品入库 + StoreProductStorage storage = Optional.ofNullable(this.storageMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProductStorage::getId, storeProdStorageId).eq(StoreProductStorage::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("档口商品入库不存在!", HttpStatus.ERROR)); + storage.setDelFlag(Constants.DELETED); + int count = this.storageMapper.updateById(storage); + // 档口商品入库明细 + List storageDetailList = storageDetailMapper.selectList(new LambdaQueryWrapper() + .eq(StoreProductStorageDetail::getStoreProdStorId, storeProdStorageId).eq(StoreProductStorageDetail::getDelFlag, Constants.UNDELETED)); + storageDetailList.forEach(x -> x.setDelFlag(Constants.DELETED)); + this.storageDetailMapper.updateById(storageDetailList); + // 减少档口商品库存 + this.stockService.decreaseStock(storage.getStoreId(), storageDetailList.stream() + .map(x -> BeanUtil.toBean(x, StoreProdStockDTO.class)).collect(Collectors.toList())); + // 将入库抵扣的需求的中间表删除 + this.deleteStorageDemandDeduct(storageDetailList); + return count; + } + + /** + * 根据存储详情列表删除存储需求扣减记录 + * 此方法主要负责根据入库单明细,更新相关需求单的状态,并删除关联的需求扣减记录 + * + * @param storageDetailList 存储详情列表,用于获取需要处理的入库单明细 + */ + private void deleteStorageDemandDeduct(List storageDetailList) { + // 入库单明细ID列表 + List storageDetailIdList = storageDetailList.stream().map(StoreProductStorageDetail::getId).collect(Collectors.toList()); + List deductList = this.deductMapper.selectList(new LambdaQueryWrapper() + .eq(StoreProductStorageDemandDeduct::getDelFlag, Constants.UNDELETED).in(StoreProductStorageDemandDeduct::getStoreProdStorageDetailId, storageDetailIdList)); + if (CollectionUtils.isEmpty(deductList)) { + return; + } + // 将入库单明细对应的需求单状态更改为待生产 或 生产中 + List demandDetailIdList = deductList.stream().map(StoreProductStorageDemandDeduct::getStoreProdDemandDetailId).distinct().collect(Collectors.toList()); + List demandDetailList = Optional.ofNullable(this.demandDetailMapper.selectList(new LambdaQueryWrapper() + .in(StoreProductDemandDetail::getId, demandDetailIdList).eq(StoreProductDemandDetail::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("需求单明细不存在!", HttpStatus.ERROR)); + List demandList = Optional.ofNullable(this.demandMapper.selectList(new LambdaQueryWrapper() + .in(StoreProductDemand::getId, demandDetailList.stream().map(StoreProductDemandDetail::getStoreProdDemandId).distinct().collect(Collectors.toList())) + .eq(StoreProductDemand::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("需求单不存在!", HttpStatus.ERROR)); + // 将需求单已完成状态更改为:生产中 + demandList = demandList.stream().filter(x -> Objects.equals(x.getDemandStatus(), DemandStatus.PRODUCTION_COMPLETE.getValue())) + .peek(x -> x.setDemandStatus(DemandStatus.IN_PRODUCTION.getValue())).collect(Collectors.toList()); + this.demandMapper.updateById(demandList); + demandDetailList = demandDetailList.stream().filter(x -> Objects.equals(x.getDetailStatus(), DemandStatus.PRODUCTION_COMPLETE.getValue())) + .peek(x -> x.setDetailStatus(DemandStatus.IN_PRODUCTION.getValue())).collect(Collectors.toList()); + this.demandDetailMapper.updateById(demandDetailList); + // 将中间表关系置为无效 + deductList.forEach(x -> x.setDelFlag(Constants.DELETED)); + this.deductMapper.updateById(deductList); + } + + + private void updateLatestDemandStatus(List updateDetailIdList, List demandIdList, Map>>> totalMatchMap) { + List listAfterInsert = this.deductMapper.selectList(new LambdaQueryWrapper() + .eq(StoreProductStorageDemandDeduct::getDelFlag, Constants.UNDELETED).in(StoreProductStorageDemandDeduct::getStoreProdDemandDetailId, updateDetailIdList)); + if (CollectionUtils.isEmpty(listAfterInsert)) { + return; + } + Map> latestDeductMap = listAfterInsert.stream().collect(Collectors.groupingBy(StoreProductStorageDemandDeduct::getStoreProdDemandDetailId)); + Map> latestDeductSizeQuantityMap = new LinkedHashMap<>(); + latestDeductMap.forEach((storeProdDemandDetailId, latestDeductList) -> { + Map sizeQuantityMap = new LinkedHashMap<>(); + Integer size30Quantity = latestDeductList.stream().filter(x -> x.getSize() == 30).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(30, size30Quantity); + Integer size31Quantity = latestDeductList.stream().filter(x -> x.getSize() == 31).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(31, size31Quantity); + Integer size32Quantity = latestDeductList.stream().filter(x -> x.getSize() == 32).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(32, size32Quantity); + Integer size33Quantity = latestDeductList.stream().filter(x -> x.getSize() == 33).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(33, size33Quantity); + Integer size34Quantity = latestDeductList.stream().filter(x -> x.getSize() == 34).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(34, size34Quantity); + Integer size35Quantity = latestDeductList.stream().filter(x -> x.getSize() == 35).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(35, size35Quantity); + Integer size36Quantity = latestDeductList.stream().filter(x -> x.getSize() == 36).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(36, size36Quantity); + Integer size37Quantity = latestDeductList.stream().filter(x -> x.getSize() == 37).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(37, size37Quantity); + Integer size38Quantity = latestDeductList.stream().filter(x -> x.getSize() == 38).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(38, size38Quantity); + Integer size39Quantity = latestDeductList.stream().filter(x -> x.getSize() == 39).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(39, size39Quantity); + Integer size40Quantity = latestDeductList.stream().filter(x -> x.getSize() == 40).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(40, size40Quantity); + Integer size41Quantity = latestDeductList.stream().filter(x -> x.getSize() == 41).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(41, size41Quantity); + Integer size42Quantity = latestDeductList.stream().filter(x -> x.getSize() == 42).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(42, size42Quantity); + Integer size43Quantity = latestDeductList.stream().filter(x -> x.getSize() == 43).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); + sizeQuantityMap.put(43, size43Quantity); + latestDeductSizeQuantityMap.put(storeProdDemandDetailId, sizeQuantityMap); + }); + // 筛选出所有和本次需求单抵扣有关的需求单列表 + List updateDemandDetailList = Optional.ofNullable(this.demandDetailMapper.selectList(new LambdaQueryWrapper() + .in(StoreProductDemandDetail::getStoreProdDemandId, demandIdList).eq(StoreProductDemandDetail::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("获取需求单明细失败", HttpStatus.ERROR)); + // 依次对比需求单明细不同size的完成数量,并更新需求单明细的detailStatus + List demandDetailListAfterUpdate = updateDemandDetailList.stream().map(updateDetail -> { + Map latestSizeQuantityMap = latestDeductSizeQuantityMap.get(updateDetail.getId()); + if (MapUtils.isEmpty(latestSizeQuantityMap)) { + return updateDetail; + } + Boolean size30Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(30), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize30(), 0); + Boolean size31Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(31), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize31(), 0); + Boolean size32Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(32), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize32(), 0); + Boolean size33Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(33), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize33(), 0); + Boolean size34Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(34), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize34(), 0); + Boolean size35Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(35), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize35(), 0); + Boolean size36Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(36), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize36(), 0); + Boolean size37Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(37), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize37(), 0); + Boolean size38Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(38), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize38(), 0); + Boolean size39Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(39), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize39(), 0); + Boolean size40Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(40), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize40(), 0); + Boolean size41Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(41), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize41(), 0); + Boolean size42Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(42), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize42(), 0); + Boolean size43Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(43), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize43(), 0); + if (size30Finish && size31Finish && size32Finish && size33Finish && size34Finish && size35Finish && size36Finish && size37Finish && size38Finish + && size39Finish && size40Finish && size41Finish && size42Finish && size43Finish) { + updateDetail.setDetailStatus(DemandStatus.PRODUCTION_COMPLETE.getValue()); + } + return updateDetail; + }).collect(Collectors.toList()); + this.demandDetailMapper.updateById(demandDetailListAfterUpdate); + Map> demandGroupMap = updateDemandDetailList.stream().collect(Collectors.groupingBy(StoreProductDemandDetail::getStoreProdDemandId)); + List demandIdListAfterUpdate = new ArrayList<>(); + demandGroupMap.forEach((demandId, tempDetailList) -> { + if (tempDetailList.stream().allMatch(x -> x.getDetailStatus() == 3)) { + demandIdListAfterUpdate.add(demandId); + } + }); + if (CollectionUtils.isNotEmpty(demandIdListAfterUpdate)) { + this.demandMapper.updateStatusByIds(demandIdListAfterUpdate); + } + } + + private List createDemandDeduct(String storageCode, List demandDetailList, Map>>> totalMatchMap) { + List demandSimpleList = Optional.ofNullable(this.demandDetailMapper.selectDemandCodeList(demandDetailList.stream() + .map(StoreProductDemandDetail::getId).distinct().collect(Collectors.toList()))) + .orElseThrow(() -> new ServiceException("获取需求单号失败", HttpStatus.ERROR)); + // demandDetailId 与 demandCode 的映射关系 + Map demandCodeMap = demandSimpleList.stream().collect(Collectors.toMap(StoreProdDemandSimpleDTO::getStoreProdDemandDetailId, StoreProdDemandSimpleDTO::getCode)); + List deductList = new ArrayList<>(); + // 待更新的需求单明细ID列表 + List updateDetailIdList = new ArrayList<>(); + totalMatchMap.forEach((storeProdColorId, detailSizeStorageMap) -> { + detailSizeStorageMap.forEach((storageDetailId, sizeMatchMap) -> { + sizeMatchMap.forEach((size, itemMatchMap) -> { + itemMatchMap.forEach((storeProductDemandDetailId, matchQuantity) -> { + StoreProductStorageDemandDeduct deductNew = new StoreProductStorageDemandDeduct(); + deductNew.setStoreProdColorId(storeProdColorId).setStoreProdDemandDetailId(storeProductDemandDetailId) + .setStoreProdStorageDetailId(storageDetailId).setStorageCode(storageCode).setDemandCode(demandCodeMap.get(storeProductDemandDetailId)) + .setSize(size).setQuantity(matchQuantity).setDelFlag(Constants.UNDELETED); + updateDetailIdList.add(storeProductDemandDetailId); + deductList.add(deductNew); + }); + }); + }); + }); + this.deductMapper.insert(deductList); + return updateDetailIdList; + } + + private Map>>> getTotalMatchMap(Map>> storageQuantityMap, + Map>> unDeductMap) { + // 按照入库的数量明细依次判断哪些需求订单明细还未抵扣完毕 + Map>>> totalMatchMap = new LinkedHashMap<>(); + storageQuantityMap.forEach((storeProdColorId, detailSizeStorageMap) -> { + Map> sizeRequireMap = unDeductMap.get(storeProdColorId); + if (MapUtils.isEmpty(sizeRequireMap) || MapUtils.isEmpty(detailSizeStorageMap)) { + return; + } + Map>> storageDetailIdSizeMatchMap = new LinkedHashMap<>(); + // 匹配的尺码集合 + detailSizeStorageMap.forEach((storageDetailId, sizeStorageMap) -> { + if (MapUtils.isEmpty(sizeStorageMap)) { + return; + } + Map> sizeMatchMap = new LinkedHashMap<>(); + // 遍历每个入库单明细尺码 + sizeStorageMap.forEach((size, storageQuantity) -> { + Map requireMap = sizeRequireMap.get(size); + if (MapUtils.isEmpty(requireMap)) { + return; + } + // key storeProductDemandDetailId; value matchQuantity + Map itemMatchMap = new LinkedHashMap<>(); + // 遍历每个需求订单 + for (Map.Entry entry : requireMap.entrySet()) { + // 尺码的入库数量 + 当前尺码的需求明细数量 + final int tempCompareQuantity = storageQuantity + entry.getValue(); + if (tempCompareQuantity == 0) { + continue; + } + if (tempCompareQuantity > 0) { + // value 取绝对值 + itemMatchMap.put(entry.getKey(), Math.abs(entry.getValue())); + storageQuantity = tempCompareQuantity; + } else { + // value 取绝对值 + itemMatchMap.put(entry.getKey(), Math.abs(storageQuantity)); + break; + } + } + // 本次入库单明细可抵扣的需求单明细ID及数量 + if (MapUtils.isNotEmpty(itemMatchMap)) { + sizeMatchMap.put(size, itemMatchMap); + } + }); + if (MapUtils.isNotEmpty(sizeMatchMap)) { + storageDetailIdSizeMatchMap.put(storageDetailId, sizeMatchMap); + } + }); + if (MapUtils.isNotEmpty(storageDetailIdSizeMatchMap)) { + totalMatchMap.put(storeProdColorId, storageDetailIdSizeMatchMap); + } + }); + return totalMatchMap; + } + + private Map>> getStorageQuantityMap(List detailList) { + // 按照入库明细列表依次进行需求数量扣减 + Map>> storageQuantityMap = new LinkedHashMap<>(); + for (StoreProductStorageDetail storageDetail : detailList) { + Map sizeStorageMap = new LinkedHashMap<>(); + if (ObjectUtils.isNotEmpty(storageDetail.getSize30())) { + sizeStorageMap.put(30, storageDetail.getSize30()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize31())) { + sizeStorageMap.put(31, storageDetail.getSize31()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize32())) { + sizeStorageMap.put(32, storageDetail.getSize32()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize33())) { + sizeStorageMap.put(33, storageDetail.getSize33()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize34())) { + sizeStorageMap.put(34, storageDetail.getSize34()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize35())) { + sizeStorageMap.put(35, storageDetail.getSize35()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize36())) { + sizeStorageMap.put(36, storageDetail.getSize36()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize37())) { + sizeStorageMap.put(37, storageDetail.getSize37()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize38())) { + sizeStorageMap.put(38, storageDetail.getSize38()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize39())) { + sizeStorageMap.put(39, storageDetail.getSize39()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize40())) { + sizeStorageMap.put(40, storageDetail.getSize40()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize41())) { + sizeStorageMap.put(41, storageDetail.getSize41()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize42())) { + sizeStorageMap.put(42, storageDetail.getSize42()); + } + if (ObjectUtils.isNotEmpty(storageDetail.getSize43())) { + sizeStorageMap.put(43, storageDetail.getSize43()); + } + if (MapUtils.isNotEmpty(sizeStorageMap)) { + storageQuantityMap.put(storageDetail.getStoreProdColorId(), new LinkedHashMap>() {{ + put(storageDetail.getId(), sizeStorageMap); + }}); + } + } + return storageQuantityMap; + } + + private Map>> getUnDeductMap(List demandDetailList, List detailList) { + List deductedList = this.deductMapper.selectList(new LambdaQueryWrapper() + .in(StoreProductStorageDemandDeduct::getStoreProdColorId, detailList.stream().map(StoreProductStorageDetail::getStoreProdColorId).collect(Collectors.toList())) + .eq(StoreProductStorageDemandDeduct::getDelFlag, Constants.UNDELETED)); + // 已存在的需求抵扣明细列表 + Map> deductedExistsMap = deductedList.stream().collect(Collectors.groupingBy(StoreProductStorageDemandDeduct::getStoreProdColorId, + Collectors.groupingBy(StoreProductStorageDemandDeduct::getSize, Collectors.summingInt(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0))))); // 按照需求的storeProdColorId进行分组,再按照:1.生产中(2)、待生产(1) 排序 2. 再按照需求创建时间升序排列 Map> tempDemandDetailMap = demandDetailList.stream().collect(Collectors .groupingBy(StoreProductDemandDetail::getStoreProdColorId, Collectors @@ -224,293 +569,39 @@ public class StoreProductStorageServiceImpl implements IStoreProductStorageServi unDeductMap.put(storeProdColorId, sizeRequireMap); } }); - - // 按照入库明细列表依次进行需求数量扣减 - Map>> storageQuantityMap = new LinkedHashMap<>(); - for (StoreProductStorageDetail storageDetail : detailList) { - Map sizeStorageMap = new LinkedHashMap<>(); - if (ObjectUtils.isNotEmpty(storageDetail.getSize30())) { - sizeStorageMap.put(30, storageDetail.getSize30()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize31())) { - sizeStorageMap.put(31, storageDetail.getSize31()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize32())) { - sizeStorageMap.put(32, storageDetail.getSize32()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize33())) { - sizeStorageMap.put(33, storageDetail.getSize33()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize34())) { - sizeStorageMap.put(34, storageDetail.getSize34()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize35())) { - sizeStorageMap.put(35, storageDetail.getSize35()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize36())) { - sizeStorageMap.put(36, storageDetail.getSize36()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize37())) { - sizeStorageMap.put(37, storageDetail.getSize37()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize38())) { - sizeStorageMap.put(38, storageDetail.getSize38()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize39())) { - sizeStorageMap.put(39, storageDetail.getSize39()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize40())) { - sizeStorageMap.put(40, storageDetail.getSize40()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize41())) { - sizeStorageMap.put(41, storageDetail.getSize41()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize42())) { - sizeStorageMap.put(42, storageDetail.getSize42()); - } - if (ObjectUtils.isNotEmpty(storageDetail.getSize43())) { - sizeStorageMap.put(43, storageDetail.getSize43()); - } - if (MapUtils.isNotEmpty(sizeStorageMap)) { - storageQuantityMap.put(storageDetail.getStoreProdColorId(), new LinkedHashMap>() {{ - put(storageDetail.getId(), sizeStorageMap); - }}); - } - } - - // 按照入库的数量明细依次判断哪些需求订单明细还未抵扣完毕 - Map>>> totalMatchMap = new LinkedHashMap<>(); - storageQuantityMap.forEach((storeProdColorId, detailSizeStorageMap) -> { - Map> sizeRequireMap = unDeductMap.get(storeProdColorId); - if (MapUtils.isEmpty(sizeRequireMap) || MapUtils.isEmpty(detailSizeStorageMap)) { - return; - } - Map>> storageDetailIdSizeMatchMap = new LinkedHashMap<>(); - // 匹配的尺码集合 - detailSizeStorageMap.forEach((storageDetailId, sizeStorageMap) -> { - if (MapUtils.isEmpty(sizeStorageMap)) { - return; - } - Map> sizeMatchMap = new LinkedHashMap<>(); - // 遍历每个入库单明细尺码 - sizeStorageMap.forEach((size, storageQuantity) -> { - Map requireMap = sizeRequireMap.get(size); - if (MapUtils.isEmpty(requireMap)) { - return; - } - // key storeProductDemandDetailId; value matchQuantity - Map itemMatchMap = new LinkedHashMap<>(); - // 遍历每个需求订单 - for (Map.Entry entry : requireMap.entrySet()) { - // 尺码的入库数量 + 当前尺码的需求明细数量 - final int tempCompareQuantity = storageQuantity + entry.getValue(); - if (tempCompareQuantity == 0) { - continue; - } - if (tempCompareQuantity > 0) { - // value 取绝对值 - itemMatchMap.put(entry.getKey(), Math.abs(entry.getValue())); - storageQuantity = tempCompareQuantity; - } else { - // value 取绝对值 - itemMatchMap.put(entry.getKey(), Math.abs(storageQuantity)); - break; - } - } - // 本次入库单明细可抵扣的需求单明细ID及数量 - if (MapUtils.isNotEmpty(itemMatchMap)) { - sizeMatchMap.put(size, itemMatchMap); - } - }); - if (MapUtils.isNotEmpty(sizeMatchMap)) { - storageDetailIdSizeMatchMap.put(storageDetailId, sizeMatchMap); - } - }); - if (MapUtils.isNotEmpty(storageDetailIdSizeMatchMap)) { - totalMatchMap.put(storeProdColorId, storageDetailIdSizeMatchMap); - } - }); - - System.err.println(totalMatchMap); - if (MapUtils.isEmpty(totalMatchMap)) { - return count; - } - - List demandSimpleList = Optional.ofNullable(this.demandDetailMapper.selectDemandCodeList(demandDetailList.stream() - .map(StoreProductDemandDetail::getId).distinct().collect(Collectors.toList()))) - .orElseThrow(() -> new ServiceException("获取需求单号失败", HttpStatus.ERROR)); - // demandDetailId 与 demandCode 的映射关系 - Map demandCodeMap = demandSimpleList.stream().collect(Collectors.toMap(StoreProdDemandSimpleDTO::getStoreProdDemandDetailId, StoreProdDemandSimpleDTO::getCode)); - List deductList = new ArrayList<>(); - // 待更新的需求单明细ID列表 - List updateDetailIdList = new ArrayList<>(); - totalMatchMap.forEach((storeProdColorId, detailSizeStorageMap) -> { - detailSizeStorageMap.forEach((storageDetailId, sizeMatchMap) -> { - sizeMatchMap.forEach((size, itemMatchMap) -> { - itemMatchMap.forEach((storeProductDemandDetailId, matchQuantity) -> { - StoreProductStorageDemandDeductNew deductNew = new StoreProductStorageDemandDeductNew(); - deductNew.setStoreProdColorId(storeProdColorId) - .setStoreProdDemandDetailId(storeProductDemandDetailId) - .setStoreProdStorageDetailId(storageDetailId) - .setStorageCode(storeProdStorage.getCode()) - .setDemandCode(demandCodeMap.get(storeProductDemandDetailId)) - .setSize(size) - .setQuantity(matchQuantity) - .setDelFlag(Constants.UNDELETED); - updateDetailIdList.add(storeProductDemandDetailId); - deductList.add(deductNew); - }); - }); - }); - }); - this.deductNewMapper.insert(deductList); - - List listAfterInsert = this.deductNewMapper.selectList(new LambdaQueryWrapper() - .eq(StoreProductStorageDemandDeductNew::getDelFlag, Constants.UNDELETED).in(StoreProductStorageDemandDeductNew::getStoreProdDemandDetailId, updateDetailIdList)); - if (CollectionUtils.isEmpty(listAfterInsert)) { - return count; - } - Map> latestDeductMap = listAfterInsert.stream().collect(Collectors.groupingBy(StoreProductStorageDemandDeductNew::getStoreProdDemandDetailId)); - Map> latestDeductSizeQuantityMap = new LinkedHashMap<>(); - latestDeductMap.forEach((storeProdDemandDetailId, latestDeductList) -> { - Map sizeQuantityMap = new LinkedHashMap<>(); - Integer size30Quantity = latestDeductList.stream().filter(x -> x.getSize() == 30).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(30, size30Quantity); - Integer size31Quantity = latestDeductList.stream().filter(x -> x.getSize() == 31).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(31, size31Quantity); - Integer size32Quantity = latestDeductList.stream().filter(x -> x.getSize() == 32).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(32, size32Quantity); - Integer size33Quantity = latestDeductList.stream().filter(x -> x.getSize() == 33).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(33, size33Quantity); - Integer size34Quantity = latestDeductList.stream().filter(x -> x.getSize() == 34).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(34, size34Quantity); - Integer size35Quantity = latestDeductList.stream().filter(x -> x.getSize() == 35).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(35, size35Quantity); - Integer size36Quantity = latestDeductList.stream().filter(x -> x.getSize() == 36).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(36, size36Quantity); - Integer size37Quantity = latestDeductList.stream().filter(x -> x.getSize() == 37).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(37, size37Quantity); - Integer size38Quantity = latestDeductList.stream().filter(x -> x.getSize() == 38).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(38, size38Quantity); - Integer size39Quantity = latestDeductList.stream().filter(x -> x.getSize() == 39).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(39, size39Quantity); - Integer size40Quantity = latestDeductList.stream().filter(x -> x.getSize() == 40).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(40, size40Quantity); - Integer size41Quantity = latestDeductList.stream().filter(x -> x.getSize() == 41).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(41, size41Quantity); - Integer size42Quantity = latestDeductList.stream().filter(x -> x.getSize() == 42).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(42, size42Quantity); - Integer size43Quantity = latestDeductList.stream().filter(x -> x.getSize() == 43).map(x -> ObjectUtils.defaultIfNull(x.getQuantity(), 0)).reduce(0, Integer::sum); - sizeQuantityMap.put(43, size43Quantity); - latestDeductSizeQuantityMap.put(storeProdDemandDetailId, sizeQuantityMap); - }); - // 筛选出所有和本次需求单抵扣有关的需求单列表 - List updateDemandDetailList = Optional.ofNullable(this.demandDetailMapper.selectList(new LambdaQueryWrapper() - .in(StoreProductDemandDetail::getStoreProdDemandId, demandIdList).eq(StoreProductDemandDetail::getDelFlag, Constants.UNDELETED))) - .orElseThrow(() -> new ServiceException("获取需求单明细失败", HttpStatus.ERROR)); - // 依次对比需求单明细不同size的完成数量,并更新需求单明细的detailStatus - List demandDetailListAfterUpdate = updateDemandDetailList.stream().map(updateDetail -> { - Map latestSizeQuantityMap = latestDeductSizeQuantityMap.get(updateDetail.getId()); - if (MapUtils.isEmpty(latestSizeQuantityMap)) { - return updateDetail; - } - Boolean size30Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(30), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize30(), 0); - Boolean size31Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(31), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize31(), 0); - Boolean size32Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(32), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize32(), 0); - Boolean size33Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(33), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize33(), 0); - Boolean size34Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(34), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize34(), 0); - Boolean size35Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(35), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize35(), 0); - Boolean size36Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(36), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize36(), 0); - Boolean size37Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(37), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize37(), 0); - Boolean size38Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(38), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize38(), 0); - Boolean size39Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(39), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize39(), 0); - Boolean size40Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(40), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize40(), 0); - Boolean size41Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(41), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize41(), 0); - Boolean size42Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(42), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize42(), 0); - Boolean size43Finish = ObjectUtils.defaultIfNull(latestSizeQuantityMap.get(43), 0) >= ObjectUtils.defaultIfNull(updateDetail.getSize43(), 0); - if (size30Finish && size31Finish && size32Finish && size33Finish && size34Finish && size35Finish && size36Finish && size37Finish && size38Finish - && size39Finish && size40Finish && size41Finish && size42Finish && size43Finish) { - updateDetail.setDetailStatus(3); - } - return updateDetail; - }).collect(Collectors.toList()); - this.demandDetailMapper.updateById(demandDetailListAfterUpdate); - Map> demandGroupMap = updateDemandDetailList.stream().collect(Collectors.groupingBy(StoreProductDemandDetail::getStoreProdDemandId)); - List demandIdListAfterUpdate = new ArrayList<>(); - demandGroupMap.forEach((demandId, tempDetailList) -> { - if (tempDetailList.stream().allMatch(x -> x.getDetailStatus() == 3)) { - demandIdListAfterUpdate.add(demandId); - } - }); - if (CollectionUtils.isNotEmpty(demandIdListAfterUpdate)) { - this.demandMapper.updateStatusByIds(demandIdListAfterUpdate); - } - return count; + return unDeductMap; } - /** - * 查询档口商品入库 + * 处理43码商品的需求数量 + * 当43码商品的扣减数量小于0时,如果该商品的需求数量不为0,则将需求数量的负值存入map中; + * 否则,将扣减数量与需求数量的差值存入map,并更新扣减数量 * - * @param storeProdStorId 档口商品入库主键 - * @return 档口商品入库 + * @param size43Deduct 43码商品的扣减数量 + * @param size43DemandMap 存储43码商品需求信息的map,键为商品ID,值为需求变更数量 + * @param demandDetail 商品需求详情对象 + * @return 更新后的43码商品扣减数量 */ - @Override - @Transactional(readOnly = true) - public StoreProdStorageResDTO selectByStoreProdStorId(Long storeProdStorId) { - // 档口商品入库 - StoreProductStorage storage = Optional.ofNullable(this.storageMapper.selectOne(new LambdaQueryWrapper() - .eq(StoreProductStorage::getId, storeProdStorId).eq(StoreProductStorage::getDelFlag, Constants.UNDELETED))) - .orElseThrow(() -> new ServiceException("档口商品入库不存在!", HttpStatus.ERROR)); - // 档口商品入库明细 - List storageDetailList = storageDetailMapper.selectList(new LambdaQueryWrapper() - .eq(StoreProductStorageDetail::getStoreProdStorId, storeProdStorId).eq(StoreProductStorageDetail::getDelFlag, Constants.UNDELETED)); - return BeanUtil.toBean(storage, StoreProdStorageResDTO.class) - .setDetailList(storageDetailList.stream().map(x -> BeanUtil.toBean(x, StoreProdStorageResDTO.StorageDetailDTO.class)).collect(Collectors.toList())); - } - - - /** - * 撤销档口商品入库 - * - * @param storeProdStorageId 需要撤销档口商品入库主键 - * @return 结果 - */ - @Override - @Transactional - public int deleteByStoreProdStorId(Long storeProdStorageId) { - // 档口商品入库 - StoreProductStorage storage = Optional.ofNullable(this.storageMapper.selectOne(new LambdaQueryWrapper() - .eq(StoreProductStorage::getId, storeProdStorageId).eq(StoreProductStorage::getDelFlag, Constants.UNDELETED))) - .orElseThrow(() -> new ServiceException("档口商品入库不存在!", HttpStatus.ERROR)); - storage.setDelFlag(Constants.DELETED); - int count = this.storageMapper.updateById(storage); - // 档口商品入库明细 - List storageDetailList = storageDetailMapper.selectList(new LambdaQueryWrapper() - .eq(StoreProductStorageDetail::getStoreProdStorId, storeProdStorageId).eq(StoreProductStorageDetail::getDelFlag, Constants.UNDELETED)); - storageDetailList.forEach(x -> x.setDelFlag(Constants.DELETED)); - this.storageDetailMapper.updateById(storageDetailList); - // 减少档口商品库存 - this.stockService.decreaseStock(storage.getStoreId(), storageDetailList.stream() - .map(x -> BeanUtil.toBean(x, StoreProdStockDTO.class)).collect(Collectors.toList())); - return count; - } - - private Integer handleSize43RequireQuantity(Integer size43Deduct, Map size43DemandMap, StoreProductDemandDetail demandDetail) { + // 获取需求详情中的43码商品需求数量,如果为null,则默认为0 final Integer size43Demand = ObjectUtils.defaultIfNull(demandDetail.getSize43(), 0); + // 当43码商品的扣减数量小于0时 if (size43Deduct < 0) { + // 如果该商品的需求数量不为0,则将需求数量的负值存入map中 if (size43Demand != 0) { size43DemandMap.put(demandDetail.getId(), size43Demand * -1); } } else { - // 临时结果 + // 临时结果,用于计算扣减数量与需求数量的差值 final int tempSize43Deduct = size43Deduct - size43Demand; + // 如果差值小于0,则将差值存入map中 if (tempSize43Deduct < 0) { size43DemandMap.put(demandDetail.getId(), tempSize43Deduct); } + // 更新扣减数量 size43Deduct = tempSize43Deduct; } + // 返回更新后的扣减数量 return size43Deduct; } @@ -735,5 +826,4 @@ public class StoreProductStorageServiceImpl implements IStoreProductStorageServi return size30Deduct; } - } diff --git a/xkt/src/main/resources/mapper/StoreProductColorMapper.xml b/xkt/src/main/resources/mapper/StoreProductColorMapper.xml index 42507a766..d5c17ba69 100644 --- a/xkt/src/main/resources/mapper/StoreProductColorMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductColorMapper.xml @@ -124,9 +124,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND spc.store_prod_id = spcp.store_prod_id AND spc.store_color_id = spcp.store_color_id WHERE - spc.store_id = #{storeId} - and sp.prod_art_num like concat('%', #{prodArtNum}, '%') - and sp.prod_cate_id = #{prodCateId} + spc.store_id = #{storeId} AND sp.prod_status = #{prodStatus} + and sp.prod_art_num like concat('%', #{prodArtNum}, '%') + and sp.prod_cate_id = #{prodCateId} + ORDER BY + spc.create_time DESC diff --git a/xkt/src/main/resources/mapper/StoreProductStockMapper.xml b/xkt/src/main/resources/mapper/StoreProductStockMapper.xml index 50bb725db..9f0a307b8 100644 --- a/xkt/src/main/resources/mapper/StoreProductStockMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductStockMapper.xml @@ -169,6 +169,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" del_flag = 0 AND store_id = #{storeId} and prod_art_num like concat('%', #{prodArtNum}, '%') + ORDER BY + create_time DESC \ No newline at end of file diff --git a/xkt/src/main/resources/mapper/StoreProductStorageMapper.xml b/xkt/src/main/resources/mapper/StoreProductStorageMapper.xml index e231b5b7e..89f841a63 100644 --- a/xkt/src/main/resources/mapper/StoreProductStorageMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductStorageMapper.xml @@ -101,7 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"