1
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsAccountVo;
|
||||
import com.klp.domain.bo.WmsAccountBo;
|
||||
import com.klp.service.IWmsAccountService;
|
||||
|
||||
/**
|
||||
* 会计科目
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/klp/account")
|
||||
public class WmsAccountController extends BaseController {
|
||||
|
||||
private final IWmsAccountService iWmsAccountService;
|
||||
|
||||
/**
|
||||
* 查询会计科目列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public R<List<WmsAccountVo>> list(WmsAccountBo bo) {
|
||||
List<WmsAccountVo> list = iWmsAccountService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出会计科目列表
|
||||
*/
|
||||
@Log(title = "会计科目", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsAccountBo bo, HttpServletResponse response) {
|
||||
List<WmsAccountVo> list = iWmsAccountService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "会计科目", WmsAccountVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会计科目详细信息
|
||||
*
|
||||
* @param accountId 主键
|
||||
*/
|
||||
@GetMapping("/{accountId}")
|
||||
public R<WmsAccountVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long accountId) {
|
||||
return R.ok(iWmsAccountService.queryById(accountId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增会计科目
|
||||
*/
|
||||
@Log(title = "会计科目", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsAccountBo bo) {
|
||||
return toAjax(iWmsAccountService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改会计科目
|
||||
*/
|
||||
@Log(title = "会计科目", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsAccountBo bo) {
|
||||
return toAjax(iWmsAccountService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除会计科目
|
||||
*
|
||||
* @param accountIds 主键串
|
||||
*/
|
||||
@Log(title = "会计科目", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{accountIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] accountIds) {
|
||||
return toAjax(iWmsAccountService.deleteWithValidByIds(Arrays.asList(accountIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsCategoryVo;
|
||||
import com.klp.domain.bo.WmsCategoryBo;
|
||||
import com.klp.service.IWmsCategoryService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 通用分类
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/category")
|
||||
public class WmsCategoryController extends BaseController {
|
||||
|
||||
private final IWmsCategoryService iWmsCategoryService;
|
||||
|
||||
/**
|
||||
* 查询通用分类列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsCategoryVo> list(WmsCategoryBo bo, PageQuery pageQuery) {
|
||||
return iWmsCategoryService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出通用分类列表
|
||||
*/
|
||||
@Log(title = "通用分类", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsCategoryBo bo, HttpServletResponse response) {
|
||||
List<WmsCategoryVo> list = iWmsCategoryService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "通用分类", WmsCategoryVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取通用分类详细信息
|
||||
*
|
||||
* @param categoryId 主键
|
||||
*/
|
||||
@GetMapping("/{categoryId}")
|
||||
public R<WmsCategoryVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long categoryId) {
|
||||
return R.ok(iWmsCategoryService.queryById(categoryId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增通用分类
|
||||
*/
|
||||
@Log(title = "通用分类", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsCategoryBo bo) {
|
||||
return toAjax(iWmsCategoryService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改通用分类
|
||||
*/
|
||||
@Log(title = "通用分类", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsCategoryBo bo) {
|
||||
return toAjax(iWmsCategoryService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除通用分类
|
||||
*
|
||||
* @param categoryIds 主键串
|
||||
*/
|
||||
@Log(title = "通用分类", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{categoryIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] categoryIds) {
|
||||
return toAjax(iWmsCategoryService.deleteWithValidByIds(Arrays.asList(categoryIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsGenerateRecordVo;
|
||||
import com.klp.domain.bo.WmsGenerateRecordBo;
|
||||
import com.klp.service.IWmsGenerateRecordService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 二维码生成记录
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-09-10
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/klp/generateRecord")
|
||||
public class WmsGenerateRecordController extends BaseController {
|
||||
|
||||
private final IWmsGenerateRecordService iWmsGenerateRecordService;
|
||||
|
||||
/**
|
||||
* 查询二维码生成记录列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsGenerateRecordVo> list(WmsGenerateRecordBo bo, PageQuery pageQuery) {
|
||||
return iWmsGenerateRecordService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出二维码生成记录列表
|
||||
*/
|
||||
@Log(title = "二维码生成记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsGenerateRecordBo bo, HttpServletResponse response) {
|
||||
List<WmsGenerateRecordVo> list = iWmsGenerateRecordService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "二维码生成记录", WmsGenerateRecordVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取二维码生成记录详细信息
|
||||
*
|
||||
* @param recordId 主键
|
||||
*/
|
||||
@GetMapping("/{recordId}")
|
||||
public R<WmsGenerateRecordVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long recordId) {
|
||||
return R.ok(iWmsGenerateRecordService.queryById(recordId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增二维码生成记录
|
||||
*/
|
||||
@Log(title = "二维码生成记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<WmsGenerateRecordVo> add(@Validated(AddGroup.class) @RequestBody WmsGenerateRecordBo bo) {
|
||||
return R.ok(iWmsGenerateRecordService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改二维码生成记录
|
||||
*/
|
||||
@Log(title = "二维码生成记录", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsGenerateRecordBo bo) {
|
||||
return toAjax(iWmsGenerateRecordService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除二维码生成记录
|
||||
*
|
||||
* @param recordIds 主键串
|
||||
*/
|
||||
@Log(title = "二维码生成记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{recordIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] recordIds) {
|
||||
return toAjax(iWmsGenerateRecordService.deleteWithValidByIds(Arrays.asList(recordIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsOrderVo;
|
||||
import com.klp.domain.bo.WmsOrderBo;
|
||||
import com.klp.service.IWmsOrderService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 订单主
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/order")
|
||||
public class WmsOrderController extends BaseController {
|
||||
|
||||
private final IWmsOrderService iWmsOrderService;
|
||||
|
||||
/**
|
||||
* 查询订单主列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsOrderVo> list(WmsOrderBo bo, PageQuery pageQuery) {
|
||||
return iWmsOrderService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* order_status不是零就查出来
|
||||
* 新接口 不是预订单的
|
||||
*/
|
||||
@GetMapping("/listByStatus")
|
||||
public TableDataInfo<WmsOrderVo> listByStatus(WmsOrderBo bo, PageQuery pageQuery) {
|
||||
return iWmsOrderService.queryPageListByStatus(bo, pageQuery);
|
||||
}
|
||||
/**
|
||||
* 导出订单主列表
|
||||
*/
|
||||
@Log(title = "订单主", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsOrderBo bo, HttpServletResponse response) {
|
||||
List<WmsOrderVo> list = iWmsOrderService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "订单主", WmsOrderVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取订单主详细信息
|
||||
*
|
||||
* @param orderId 主键
|
||||
*/
|
||||
@GetMapping("/{orderId}")
|
||||
public R<WmsOrderVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long orderId) {
|
||||
return R.ok(iWmsOrderService.queryById(orderId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增订单主
|
||||
*/
|
||||
@Log(title = "订单主", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsOrderBo bo) {
|
||||
return toAjax(iWmsOrderService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单主
|
||||
*/
|
||||
@Log(title = "订单主", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsOrderBo bo) {
|
||||
return toAjax(iWmsOrderService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除订单主
|
||||
*
|
||||
* @param orderIds 主键串
|
||||
*/
|
||||
@Log(title = "订单主", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{orderIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] orderIds) {
|
||||
return toAjax(iWmsOrderService.deleteWithValidByIds(Arrays.asList(orderIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsPayableVo;
|
||||
import com.klp.domain.bo.WmsPayableBo;
|
||||
import com.klp.service.IWmsPayableService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/klp/payable")
|
||||
public class WmsPayableController extends BaseController {
|
||||
|
||||
private final IWmsPayableService iWmsPayableService;
|
||||
|
||||
/**
|
||||
* 查询应付款管理(宽松版)列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsPayableVo> list(WmsPayableBo bo, PageQuery pageQuery) {
|
||||
return iWmsPayableService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出应付款管理(宽松版)列表
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsPayableBo bo, HttpServletResponse response) {
|
||||
List<WmsPayableVo> list = iWmsPayableService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "应付款管理(宽松版)", WmsPayableVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取应付款管理(宽松版)详细信息
|
||||
*
|
||||
* @param payableId 主键
|
||||
*/
|
||||
@GetMapping("/{payableId}")
|
||||
public R<WmsPayableVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long payableId) {
|
||||
return R.ok(iWmsPayableService.queryById(payableId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增应付款管理(宽松版)
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsPayableBo bo) {
|
||||
return toAjax(iWmsPayableService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新应付款已付金额 & 新增资金日记账
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/updatePaidAmount")
|
||||
public R<Void> updatePaidAmount(@RequestBody WmsPayableBo bo) {
|
||||
return toAjax(iWmsPayableService.updatePaidAmountAndAddJournal(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改应付款管理(宽松版)
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsPayableBo bo) {
|
||||
return toAjax(iWmsPayableService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除应付款管理(宽松版)
|
||||
*
|
||||
* @param payableIds 主键串
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{payableIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] payableIds) {
|
||||
return toAjax(iWmsPayableService.deleteWithValidByIds(Arrays.asList(payableIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsProductSalesScriptVo;
|
||||
import com.klp.domain.bo.WmsProductSalesScriptBo;
|
||||
import com.klp.service.IWmsProductSalesScriptService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.utils.redis.RedisUtils;
|
||||
import java.time.Duration;
|
||||
import com.klp.domain.vo.ProductRankingVo;
|
||||
|
||||
/**
|
||||
* 产品销售话术
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-07-24
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/productSalesScript")
|
||||
public class WmsProductSalesScriptController extends BaseController {
|
||||
|
||||
private final IWmsProductSalesScriptService iWmsProductSalesScriptService;
|
||||
|
||||
/**
|
||||
* 查询产品销售话术列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsProductSalesScriptVo> list(WmsProductSalesScriptBo bo, PageQuery pageQuery) {
|
||||
return iWmsProductSalesScriptService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出产品销售话术列表
|
||||
*/
|
||||
@Log(title = "产品销售话术", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsProductSalesScriptBo bo, HttpServletResponse response) {
|
||||
List<WmsProductSalesScriptVo> list = iWmsProductSalesScriptService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "产品销售话术", WmsProductSalesScriptVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取产品销售话术详细信息
|
||||
*
|
||||
* @param scriptId 主键
|
||||
*/
|
||||
@GetMapping("/{scriptId}")
|
||||
public R<WmsProductSalesScriptVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long scriptId) {
|
||||
WmsProductSalesScriptVo vo = iWmsProductSalesScriptService.queryById(scriptId);
|
||||
|
||||
// 记录产品访问次数到Redis
|
||||
if (vo != null && vo.getProductId() != null) {
|
||||
iWmsProductSalesScriptService.recordProductViewCount(vo.getProductId());
|
||||
}
|
||||
|
||||
return R.ok(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增产品销售话术
|
||||
*/
|
||||
@Log(title = "产品销售话术", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsProductSalesScriptBo bo) {
|
||||
return toAjax(iWmsProductSalesScriptService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改产品销售话术
|
||||
*/
|
||||
@Log(title = "产品销售话术", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsProductSalesScriptBo bo) {
|
||||
return toAjax(iWmsProductSalesScriptService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除产品销售话术
|
||||
*
|
||||
* @param scriptIds 主键串
|
||||
*/
|
||||
@Log(title = "产品销售话术", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{scriptIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] scriptIds) {
|
||||
return toAjax(iWmsProductSalesScriptService.deleteWithValidByIds(Arrays.asList(scriptIds), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取产品咨询热度排行
|
||||
*/
|
||||
@GetMapping("/dashboard/ranking")
|
||||
public R<List<ProductRankingVo>> getProductRanking() {
|
||||
List<ProductRankingVo> ranking = iWmsProductSalesScriptService.getProductRanking();
|
||||
return R.ok(ranking);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsProductionTaskVo;
|
||||
import com.klp.domain.bo.WmsProductionTaskBo;
|
||||
import com.klp.service.IWmsProductionTaskService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 生产任务
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-26
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/klp/productionTask")
|
||||
public class WmsProductionTaskController extends BaseController {
|
||||
|
||||
private final IWmsProductionTaskService iWmsProductionTaskService;
|
||||
|
||||
/**
|
||||
* 查询生产任务列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsProductionTaskVo> list(WmsProductionTaskBo bo, PageQuery pageQuery) {
|
||||
return iWmsProductionTaskService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出生产任务列表
|
||||
*/
|
||||
@Log(title = "生产任务", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsProductionTaskBo bo, HttpServletResponse response) {
|
||||
List<WmsProductionTaskVo> list = iWmsProductionTaskService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "生产任务", WmsProductionTaskVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取生产任务详细信息
|
||||
*
|
||||
* @param taskId 主键
|
||||
*/
|
||||
@GetMapping("/{taskId}")
|
||||
public R<WmsProductionTaskVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long taskId) {
|
||||
return R.ok(iWmsProductionTaskService.queryById(taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增生产任务
|
||||
*/
|
||||
@Log(title = "生产任务", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsProductionTaskBo bo) {
|
||||
return toAjax(iWmsProductionTaskService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改生产任务
|
||||
*/
|
||||
@Log(title = "生产任务", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsProductionTaskBo bo) {
|
||||
return toAjax(iWmsProductionTaskService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除生产任务
|
||||
*
|
||||
* @param taskIds 主键串
|
||||
*/
|
||||
@Log(title = "生产任务", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{taskIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] taskIds) {
|
||||
return toAjax(iWmsProductionTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsRawMaterialVo;
|
||||
import com.klp.domain.bo.WmsRawMaterialBo;
|
||||
import com.klp.service.IWmsRawMaterialService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 原材料
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/rawMaterial")
|
||||
public class WmsRawMaterialController extends BaseController {
|
||||
|
||||
private final IWmsRawMaterialService iWmsRawMaterialService;
|
||||
|
||||
/**
|
||||
* 查询原材料列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsRawMaterialVo> list(WmsRawMaterialBo bo, PageQuery pageQuery) {
|
||||
return iWmsRawMaterialService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询原材料列表(带BOM信息)
|
||||
*/
|
||||
@GetMapping("/listWithBom")
|
||||
public TableDataInfo<WmsRawMaterialVo> listWithBom(WmsRawMaterialBo bo, PageQuery pageQuery) {
|
||||
return iWmsRawMaterialService.queryPageListWithBom(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出原材料列表
|
||||
*/
|
||||
@Log(title = "原材料", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsRawMaterialBo bo, HttpServletResponse response) {
|
||||
List<WmsRawMaterialVo> list = iWmsRawMaterialService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "原材料", WmsRawMaterialVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取原材料详细信息
|
||||
*
|
||||
* @param rawMaterialId 主键
|
||||
*/
|
||||
@GetMapping("/{rawMaterialId}")
|
||||
public R<WmsRawMaterialVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long rawMaterialId) {
|
||||
return R.ok(iWmsRawMaterialService.queryById(rawMaterialId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增原材料
|
||||
*/
|
||||
@Log(title = "原材料", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<WmsRawMaterialBo> add(@Validated(AddGroup.class) @RequestBody WmsRawMaterialBo bo) {
|
||||
return R.ok(iWmsRawMaterialService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改原材料
|
||||
*/
|
||||
@Log(title = "原材料", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsRawMaterialBo bo) {
|
||||
return toAjax(iWmsRawMaterialService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除原材料
|
||||
*
|
||||
* @param rawMaterialIds 主键串
|
||||
*/
|
||||
@Log(title = "原材料", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{rawMaterialIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] rawMaterialIds) {
|
||||
return toAjax(iWmsRawMaterialService.deleteWithValidByIds(Arrays.asList(rawMaterialIds), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询原材料列表(含需求、库存、在途信息)
|
||||
*/
|
||||
@GetMapping("/listWithDemand")
|
||||
public TableDataInfo<WmsRawMaterialVo> listWithDemand(WmsRawMaterialBo bo, PageQuery pageQuery) {
|
||||
return iWmsRawMaterialService.queryPageListWithDemand(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增原材料并自动创建BOM(带默认属性)
|
||||
*/
|
||||
@Log(title = "原材料", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/addWithBom")
|
||||
public R<WmsRawMaterialBo> addWithBom(@Validated(AddGroup.class) @RequestBody WmsRawMaterialBo bo) {
|
||||
return R.ok(iWmsRawMaterialService.insertByBo(bo));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.bo.WmsReportSummaryBo;
|
||||
import com.klp.domain.vo.WmsReportSummaryVo;
|
||||
import com.klp.service.IWmsReportSummaryService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 设计项目汇报概述
|
||||
*
|
||||
* @author cpy
|
||||
* @date 2025-05-13
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/reportSummary")
|
||||
public class WmsReportSummaryController extends BaseController {
|
||||
|
||||
private final IWmsReportSummaryService IWmsReportSummaryService;
|
||||
|
||||
/**
|
||||
* 查询设计项目汇报概述列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsReportSummaryVo> list(WmsReportSummaryBo bo, PageQuery pageQuery) {
|
||||
return IWmsReportSummaryService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出设计项目汇报概述列表
|
||||
*/
|
||||
@Log(title = "设计项目汇报概述", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsReportSummaryBo bo, HttpServletResponse response) {
|
||||
List<WmsReportSummaryVo> list = IWmsReportSummaryService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "设计项目汇报概述", WmsReportSummaryVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设计项目汇报概述详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public R<WmsReportSummaryVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(IWmsReportSummaryService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计项目汇报概述
|
||||
*/
|
||||
@Log(title = "设计项目汇报概述", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsReportSummaryBo bo) {
|
||||
return toAjax(IWmsReportSummaryService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计项目汇报概述
|
||||
*/
|
||||
@Log(title = "设计项目汇报概述", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsReportSummaryBo bo) {
|
||||
return toAjax(IWmsReportSummaryService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设计项目汇报概述
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@Log(title = "设计项目汇报概述", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(IWmsReportSummaryService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.domain.bo.WmsSalesScriptGeneratorBo;
|
||||
import com.klp.domain.vo.WmsProductSalesScriptVo;
|
||||
import com.klp.service.IWmsSalesScriptGeneratorService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
/**
|
||||
* 销售话术生成器
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-01-27
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/salesScriptGenerator")
|
||||
public class WmsSalesScriptGeneratorController extends BaseController {
|
||||
|
||||
private final IWmsSalesScriptGeneratorService iWmsSalesScriptGeneratorService;
|
||||
|
||||
/**
|
||||
* 为单个产品生成销售话术
|
||||
*/
|
||||
@Log(title = "销售话术生成", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/generateForProduct")
|
||||
public R<List<WmsProductSalesScriptVo>> generateForProduct(@RequestBody WmsSalesScriptGeneratorBo bo) {
|
||||
List<WmsProductSalesScriptVo> scripts = iWmsSalesScriptGeneratorService.generateScriptsForProduct(bo);
|
||||
return R.ok(scripts);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量生成销售话术
|
||||
*/
|
||||
@Log(title = "批量销售话术生成", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/generateBatch")
|
||||
public R<Map<String, Object>> generateBatch(@RequestBody WmsSalesScriptGeneratorBo bo) {
|
||||
Map<String, Object> result = iWmsSalesScriptGeneratorService.generateScriptsBatch(bo);
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 为指定产品ID列表生成话术
|
||||
*/
|
||||
@Log(title = "指定产品话术生成", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/generateForProductIds")
|
||||
public R<Map<String, Object>> generateForProductIds(@RequestBody WmsSalesScriptGeneratorBo bo) {
|
||||
Map<String, Object> result = iWmsSalesScriptGeneratorService.generateScriptsForProductIds(bo);
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsSupplierVo;
|
||||
import com.klp.domain.bo.WmsSupplierBo;
|
||||
import com.klp.service.IWmsSupplierService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 供应商信息
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-12
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/supplier")
|
||||
public class WmsSupplierController extends BaseController {
|
||||
|
||||
private final IWmsSupplierService iWmsSupplierService;
|
||||
|
||||
/**
|
||||
* 查询供应商信息列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsSupplierVo> list(WmsSupplierBo bo, PageQuery pageQuery) {
|
||||
return iWmsSupplierService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出供应商信息列表
|
||||
*/
|
||||
@Log(title = "供应商信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsSupplierBo bo, HttpServletResponse response) {
|
||||
List<WmsSupplierVo> list = iWmsSupplierService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "供应商信息", WmsSupplierVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取供应商信息详细信息
|
||||
*
|
||||
* @param supplierId 主键
|
||||
*/
|
||||
@GetMapping("/{supplierId}")
|
||||
public R<WmsSupplierVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long supplierId) {
|
||||
return R.ok(iWmsSupplierService.queryById(supplierId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增供应商信息
|
||||
*/
|
||||
@Log(title = "供应商信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsSupplierBo bo) {
|
||||
return toAjax(iWmsSupplierService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应商信息
|
||||
*/
|
||||
@Log(title = "供应商信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsSupplierBo bo) {
|
||||
return toAjax(iWmsSupplierService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除供应商信息
|
||||
*
|
||||
* @param supplierIds 主键串
|
||||
*/
|
||||
@Log(title = "供应商信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{supplierIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] supplierIds) {
|
||||
return toAjax(iWmsSupplierService.deleteWithValidByIds(Arrays.asList(supplierIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsWarehouseVo;
|
||||
import com.klp.domain.bo.WmsWarehouseBo;
|
||||
import com.klp.service.IWmsWarehouseService;
|
||||
|
||||
/**
|
||||
* 仓库/库区/库位自关联
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/warehouse")
|
||||
public class WmsWarehouseController extends BaseController {
|
||||
|
||||
private final IWmsWarehouseService iWmsWarehouseService;
|
||||
|
||||
/**
|
||||
* 查询仓库/库区/库位自关联列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public R<List<WmsWarehouseVo>> list(WmsWarehouseBo bo) {
|
||||
List<WmsWarehouseVo> list = iWmsWarehouseService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出仓库/库区/库位自关联列表
|
||||
*/
|
||||
@Log(title = "仓库/库区/库位自关联", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsWarehouseBo bo, HttpServletResponse response) {
|
||||
List<WmsWarehouseVo> list = iWmsWarehouseService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "仓库/库区/库位自关联", WmsWarehouseVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取仓库/库区/库位自关联详细信息
|
||||
*
|
||||
* @param warehouseId 主键
|
||||
*/
|
||||
@GetMapping("/{warehouseId}")
|
||||
public R<WmsWarehouseVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long warehouseId) {
|
||||
return R.ok(iWmsWarehouseService.queryById(warehouseId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增仓库/库区/库位自关联
|
||||
*/
|
||||
@Log(title = "仓库/库区/库位自关联", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsWarehouseBo bo) {
|
||||
return toAjax(iWmsWarehouseService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改仓库/库区/库位自关联
|
||||
*/
|
||||
@Log(title = "仓库/库区/库位自关联", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsWarehouseBo bo) {
|
||||
return toAjax(iWmsWarehouseService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除仓库/库区/库位自关联
|
||||
*
|
||||
* @param warehouseIds 主键串
|
||||
*/
|
||||
@Log(title = "仓库/库区/库位自关联", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{warehouseIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] warehouseIds) {
|
||||
return toAjax(iWmsWarehouseService.deleteWithValidByIds(Arrays.asList(warehouseIds), true));
|
||||
}
|
||||
}
|
||||
49
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsBom.java
Normal file
49
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsBom.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* BOM 头,关联产品或原材料对象 wms_bom
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_bom")
|
||||
public class WmsBom extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* BOM 主键ID
|
||||
*/
|
||||
@TableId(value = "bom_id")
|
||||
private Long bomId;
|
||||
/**
|
||||
* BOM 编码(可选)
|
||||
*/
|
||||
private String bomCode;
|
||||
/**
|
||||
* BOM 名称(可选)
|
||||
*/
|
||||
private String bomName;
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
/**
|
||||
* 删除标志(0=正常,1=删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
53
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsBomItem.java
Normal file
53
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsBomItem.java
Normal file
@@ -0,0 +1,53 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* BOM 明细,存放属性–值对象 wms_bom_item
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_bom_item")
|
||||
public class WmsBomItem extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* BOM 明细ID
|
||||
*/
|
||||
@TableId(value = "item_id")
|
||||
private Long itemId;
|
||||
/**
|
||||
* 关联 wms_bom.bom_id
|
||||
*/
|
||||
private Long bomId;
|
||||
/**
|
||||
* 属性名称
|
||||
*/
|
||||
private String attrKey;
|
||||
/**
|
||||
* 属性值
|
||||
*/
|
||||
private String attrValue;
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
/**
|
||||
* 删除标志(0=正常,1=删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 摄像头管理对象 wms_camera_management
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-07
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_camera_management")
|
||||
public class WmsCameraManagement extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@TableId(value = "camera_id")
|
||||
private Long cameraId;
|
||||
/**
|
||||
* 摄像头编号(系统生成,如 camef8bd40d71795)
|
||||
*/
|
||||
private String cameraCode;
|
||||
/**
|
||||
* 摄像头名称(如:仓库东门摄像头)
|
||||
*/
|
||||
private String cameraName;
|
||||
/**
|
||||
* RTSP 推流地址(摄像头原生地址)
|
||||
*/
|
||||
private String rtspUrl;
|
||||
/**
|
||||
* ws - fmp4 播放地址
|
||||
*/
|
||||
private String wsFmp4;
|
||||
/**
|
||||
* http - fmp4 播放地址
|
||||
*/
|
||||
private String httpFmp4;
|
||||
/**
|
||||
* rtsp 播放地址
|
||||
*/
|
||||
private String rtspAddr;
|
||||
/**
|
||||
* hls 播放地址
|
||||
*/
|
||||
private String hlsAddr;
|
||||
/**
|
||||
* 安装位置(如:仓库 A 区货架 3)
|
||||
*/
|
||||
private String location;
|
||||
/**
|
||||
* 所属分组/区域(直接存储名称,如:仓库 A 区)
|
||||
*/
|
||||
private String groupName;
|
||||
/**
|
||||
* 所属仓库(如:一号仓库)
|
||||
*/
|
||||
private String warehouseName;
|
||||
/**
|
||||
* 状态:0-未启用 1-正常 2-离线 3-故障
|
||||
*/
|
||||
private Long status;
|
||||
/**
|
||||
* 摄像头访问用户名
|
||||
*/
|
||||
private String username;
|
||||
/**
|
||||
* 摄像头访问密码
|
||||
*/
|
||||
private String password;
|
||||
/**
|
||||
* 删除标志
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 钢卷待操作对象 wms_coil_pending_action
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_coil_pending_action")
|
||||
public class WmsCoilPendingAction extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "action_id", type = IdType.AUTO)
|
||||
private Long actionId;
|
||||
|
||||
/**
|
||||
* 关联的钢卷ID
|
||||
*/
|
||||
private Long coilId;
|
||||
|
||||
/**
|
||||
* 当前钢卷号
|
||||
*/
|
||||
private String currentCoilNo;
|
||||
|
||||
/**
|
||||
* 操作类型(1=分卷,2=合卷,3=更新)
|
||||
*/
|
||||
private Integer actionType;
|
||||
|
||||
/**
|
||||
* 操作状态(0=待处理,1=处理中,2=已完成,3=已取消)
|
||||
*/
|
||||
private Integer actionStatus;
|
||||
|
||||
/**
|
||||
* 扫码时间
|
||||
*/
|
||||
private Date scanTime;
|
||||
|
||||
/**
|
||||
* 扫码设备(移动端设备信息)
|
||||
*/
|
||||
private String scanDevice;
|
||||
|
||||
/**
|
||||
* 优先级(0=普通,1=重要,2=紧急)
|
||||
*/
|
||||
private Integer priority;
|
||||
|
||||
/**
|
||||
* 来源类型(scan=扫码,manual=手动创建)
|
||||
*/
|
||||
private String sourceType;
|
||||
|
||||
/**
|
||||
* 所在库区ID
|
||||
*/
|
||||
private Long warehouseId;
|
||||
|
||||
/**
|
||||
* 操作人ID
|
||||
*/
|
||||
private Long operatorId;
|
||||
|
||||
/**
|
||||
* 操作人姓名
|
||||
*/
|
||||
private String operatorName;
|
||||
|
||||
/**
|
||||
* 处理时间
|
||||
*/
|
||||
private Date processTime;
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
private Date completeTime;
|
||||
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 财务单据对象 wms_financial_document
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_financial_document")
|
||||
public class WmsFinancialDocument extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 单据ID(主键)
|
||||
*/
|
||||
@TableId(value = "document_id")
|
||||
private Long documentId;
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
private String docNo;
|
||||
/**
|
||||
* 单据类型
|
||||
*/
|
||||
private String docType;
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private Date docDate;
|
||||
/**
|
||||
* 单据金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 关联订单ID
|
||||
*/
|
||||
private Long relatedOrderId;
|
||||
/**
|
||||
* 单据状态
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 二维码生成记录对象 wms_generate_record
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-09-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_generate_record")
|
||||
public class WmsGenerateRecord extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "record_id")
|
||||
private Long recordId;
|
||||
/**
|
||||
* 二维码类型(字典,默认为0)
|
||||
*/
|
||||
private Long qrcodeType;
|
||||
/**
|
||||
* 二维码内容(JSON格式)
|
||||
*/
|
||||
private String content;
|
||||
/**
|
||||
* 是否启用(0:启用,1:禁用)
|
||||
*/
|
||||
private Long isEnabled;
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
private String serialNumber;
|
||||
/**
|
||||
* 二维码尺寸(像素)
|
||||
*/
|
||||
private Long size;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
//状态
|
||||
private Integer status;
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 制造规范对象 wms_manufacturing_spec
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_manufacturing_spec")
|
||||
public class WmsManufacturingSpec extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "spec_id")
|
||||
private Long specId;
|
||||
/**
|
||||
* 制造规范编码
|
||||
*/
|
||||
private String specCode;
|
||||
/**
|
||||
* 制造规范名称
|
||||
*/
|
||||
private String specName;
|
||||
/**
|
||||
* 所属事业部
|
||||
*/
|
||||
private String businessUnit;
|
||||
/**
|
||||
* 所属项目组
|
||||
*/
|
||||
private String projectTeam;
|
||||
/**
|
||||
* 产品型号/模组
|
||||
*/
|
||||
private String productModule;
|
||||
/**
|
||||
* 标识
|
||||
*/
|
||||
private String identifier;
|
||||
/**
|
||||
* 材质
|
||||
*/
|
||||
private String material;
|
||||
/**
|
||||
* 规格/尺寸
|
||||
*/
|
||||
private String specification;
|
||||
/**
|
||||
* 工艺路线
|
||||
*/
|
||||
private String processRoute;
|
||||
/**
|
||||
* 工艺参数
|
||||
*/
|
||||
private String processParams;
|
||||
/**
|
||||
* 适用范围
|
||||
*/
|
||||
private String scope;
|
||||
/**
|
||||
* 检验标准
|
||||
*/
|
||||
private String inspectionStandard;
|
||||
/**
|
||||
* 状态(字典:1=启用,2=未启用,3=作废)
|
||||
*/
|
||||
private Long status;
|
||||
/**
|
||||
* 规范类型(字典:1=普通规范,2=新试规范,3=临时规范)
|
||||
*/
|
||||
private Long specType;
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
@Version
|
||||
private BigDecimal version;
|
||||
/**
|
||||
* 版本日期
|
||||
*/
|
||||
private Date versionDate;
|
||||
/**
|
||||
* 理论工时(h)
|
||||
*/
|
||||
private BigDecimal standardHours;
|
||||
/**
|
||||
* 删除标志(0=正常,1=删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 订单盈亏对象 wms_order_profit
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_order_profit")
|
||||
public class WmsOrderProfit extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 盈亏ID(主键)
|
||||
*/
|
||||
@TableId(value = "profit_id")
|
||||
private Long profitId;
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
/**
|
||||
* 成本金额
|
||||
*/
|
||||
private BigDecimal costAmount;
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
private BigDecimal revenueAmount;
|
||||
/**
|
||||
* 利润金额
|
||||
*/
|
||||
private BigDecimal profitAmount;
|
||||
/**
|
||||
* 利润率(%)
|
||||
*/
|
||||
private BigDecimal profitRate;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 其他收支对象 wms_other_income
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-26
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_other_income")
|
||||
public class WmsOtherIncome extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 其他收入ID(主键)
|
||||
*/
|
||||
@TableId(value = "other_income_id")
|
||||
private Long otherIncomeId;
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
private Date incomeDate;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String incomeType;
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 来源
|
||||
*/
|
||||
private String source;
|
||||
/**
|
||||
* 收支类型(0=收入,1=值出)
|
||||
*/
|
||||
private Long type;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
68
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsPayable.java
Normal file
68
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsPayable.java
Normal file
@@ -0,0 +1,68 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)对象 wms_payable
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_payable")
|
||||
public class WmsPayable extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 应付ID(主键)
|
||||
*/
|
||||
@TableId(value = "payable_id")
|
||||
private Long payableId;
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
private Long supplierId;
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
private Date dueDate;
|
||||
/**
|
||||
* 应付金额(可为负数用于调整)
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 已付金额(可为负数用于冲销)
|
||||
*/
|
||||
private BigDecimal paidAmount;
|
||||
/**
|
||||
* 未付金额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 产品BOM(产品-原材料清单)对象 wms_product_bom
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_product_bom")
|
||||
public class WmsProductBom extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* BOM主键ID
|
||||
*/
|
||||
@TableId(value = "bom_id")
|
||||
private Long bomId;
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
private Long productId;
|
||||
/**
|
||||
* 原材料ID
|
||||
*/
|
||||
private Long rawMaterialId;
|
||||
/**
|
||||
* 每个产品所需原材料数量
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 产品规范组对象 wms_product_spec_group
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-26
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_product_spec_group")
|
||||
public class WmsProductSpecGroup extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "group_id")
|
||||
private Long groupId;
|
||||
/**
|
||||
* 产品规范组编码
|
||||
*/
|
||||
private String groupCode;
|
||||
/**
|
||||
* 绑定的产品ID
|
||||
*/
|
||||
private Long productId;
|
||||
/**
|
||||
* 产品规范组名称
|
||||
*/
|
||||
private String groupName;
|
||||
/**
|
||||
* 状态(字典:1=启用,2=停用)
|
||||
*/
|
||||
private Long status;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0=正常,1=删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 产线对象 wms_production_line
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_production_line")
|
||||
public class WmsProductionLine extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 产线ID
|
||||
*/
|
||||
@TableId(value = "line_id")
|
||||
private Long lineId;
|
||||
/**
|
||||
* 产线编号
|
||||
*/
|
||||
private String lineCode;
|
||||
/**
|
||||
* 产线名称
|
||||
*/
|
||||
private String lineName;
|
||||
/**
|
||||
* 日产能(单位同产品)
|
||||
*/
|
||||
private BigDecimal capacity;
|
||||
/**
|
||||
* 产能单位
|
||||
*/
|
||||
private String unit;
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 采购计划主对象 wms_purchase_plan
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_purchase_plan")
|
||||
public class WmsPurchasePlan extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 采购计划ID
|
||||
*/
|
||||
@TableId(value = "plan_id")
|
||||
private Long planId;
|
||||
/**
|
||||
* 采购计划编号
|
||||
*/
|
||||
private String planCode;
|
||||
/**
|
||||
* 负责人
|
||||
*/
|
||||
private String owner;
|
||||
/**
|
||||
* 关联订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
/**
|
||||
* 状态(0=新建,1=待审核,2=已审核,3=已完成,4=已取消)
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 附件信息
|
||||
*/
|
||||
private String attachmentInfo;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 采购计划明细对象 wms_purchase_plan_detail
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_purchase_plan_detail")
|
||||
public class WmsPurchasePlanDetail extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 明细ID
|
||||
*/
|
||||
@TableId(value = "detail_id")
|
||||
private Long detailId;
|
||||
/**
|
||||
* 采购计划ID
|
||||
*/
|
||||
private Long planId;
|
||||
/**
|
||||
* 原材料ID
|
||||
*/
|
||||
private Long rawMaterialId;
|
||||
/**
|
||||
* 负责人
|
||||
*/
|
||||
private String owner;
|
||||
/**
|
||||
* 计划采购数量
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
/**
|
||||
* 附件
|
||||
*/
|
||||
private String annex;
|
||||
/**
|
||||
* 状态( 0=新建,1=在途,2=到货,3=待审核,4=采购完成)
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 合同ID
|
||||
*/
|
||||
private Long contractId;
|
||||
|
||||
/**
|
||||
* 详情编号
|
||||
*/
|
||||
private String detailCode;
|
||||
|
||||
}
|
||||
139
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsRawMaterial.java
Normal file
139
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsRawMaterial.java
Normal file
@@ -0,0 +1,139 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 原材料对象 wms_raw_material
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_raw_material")
|
||||
public class WmsRawMaterial extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "raw_material_id")
|
||||
private Long rawMaterialId;
|
||||
/**
|
||||
* 原材料编号
|
||||
*/
|
||||
private String rawMaterialCode;
|
||||
/**
|
||||
* 原材料名称
|
||||
*/
|
||||
private String rawMaterialName;
|
||||
/**
|
||||
* 钢种/牌号(如SPHC、SPHE、S350GD等)
|
||||
*/
|
||||
private String steelGrade;
|
||||
/**
|
||||
* 目标冷轧牌号(如SPCC、DC06、SGCC等)
|
||||
*/
|
||||
private String targetColdGrade;
|
||||
/**
|
||||
* 基础材质分类ID
|
||||
*/
|
||||
private Long baseMaterialId;
|
||||
/**
|
||||
* 表面处理分类ID
|
||||
*/
|
||||
private Long surfaceTreatmentId;
|
||||
/**
|
||||
* 厚度(mm)
|
||||
*/
|
||||
private BigDecimal thickness;
|
||||
/**
|
||||
* 厚度偏差(mm)
|
||||
*/
|
||||
private BigDecimal thicknessDeviation;
|
||||
/**
|
||||
* 宽度(mm)
|
||||
*/
|
||||
private BigDecimal width;
|
||||
/**
|
||||
* 目标冷轧宽度(mm)
|
||||
*/
|
||||
private BigDecimal targetColdWidth;
|
||||
/**
|
||||
* 目标冷轧厚度(mm)
|
||||
*/
|
||||
private BigDecimal targetColdThickness;
|
||||
/**
|
||||
* 凸度(mm)
|
||||
*/
|
||||
private BigDecimal crown;
|
||||
/**
|
||||
* 卷重(kg)
|
||||
*/
|
||||
private BigDecimal coilWeight;
|
||||
/**
|
||||
* 表面质量
|
||||
*/
|
||||
private String surfaceQuality;
|
||||
/**
|
||||
* 硬度(HV5)
|
||||
*/
|
||||
private BigDecimal hardnessHv5;
|
||||
/**
|
||||
* 硬度差值(HV5差值≤15为合格)
|
||||
*/
|
||||
private BigDecimal hardnessDiff;
|
||||
/**
|
||||
* 锰含量Mn(%)
|
||||
*/
|
||||
private BigDecimal compositionMn;
|
||||
/**
|
||||
* 磷含量P(%)
|
||||
*/
|
||||
private BigDecimal compositionP;
|
||||
/**
|
||||
* 晶粒级别(如ASTM 6-8级,仅电工钢)
|
||||
*/
|
||||
private String grainSize;
|
||||
/**
|
||||
* 头尾切除标记(0=否,1=是,汽车板专用)
|
||||
*/
|
||||
private Integer headTailCutFlag;
|
||||
/**
|
||||
* 检测结论(如合格/条纹/微裂纹/成分偏析等)
|
||||
*/
|
||||
private String inspectionResult;
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* BOM 表头ID
|
||||
*/
|
||||
private Long bomId;
|
||||
|
||||
//规格
|
||||
private String specification;
|
||||
|
||||
}
|
||||
|
||||
53
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsSupplier.java
Normal file
53
klp-oa/klp-wms/src/main/java/com/klp/domain/WmsSupplier.java
Normal file
@@ -0,0 +1,53 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 供应商信息对象 wms_supplier
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-12
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_supplier")
|
||||
public class WmsSupplier extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 供应商ID(主键)
|
||||
*/
|
||||
@TableId(value = "supplier_id")
|
||||
private Long supplierId;
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 联系人
|
||||
*/
|
||||
private String contactPerson;
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
private String phone;
|
||||
/**
|
||||
* 地址
|
||||
*/
|
||||
private String address;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import com.klp.common.core.domain.TreeEntity;
|
||||
|
||||
/**
|
||||
* 仓库/库区/库位自关联对象 wms_warehouse
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_warehouse")
|
||||
public class WmsWarehouse extends TreeEntity<WmsWarehouse> {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "warehouse_id")
|
||||
private Long warehouseId;
|
||||
/**
|
||||
* 仓库/库区编码
|
||||
*/
|
||||
private String warehouseCode;
|
||||
/**
|
||||
* 仓库/库区名称
|
||||
*/
|
||||
private String warehouseName;
|
||||
/**
|
||||
* 类型:0=仓库,1=库区,2=库位,…
|
||||
*/
|
||||
private Long warehouseType;
|
||||
/**
|
||||
* 同级排序号
|
||||
*/
|
||||
private Long sortNo;
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
|
||||
/**
|
||||
* 实际库区/库位自关联业务对象 wms_actual_warehouse
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsActualWarehouseBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long actualWarehouseId;
|
||||
|
||||
/**
|
||||
* 父节点ID(指向同表 warehouse_id)
|
||||
*/
|
||||
private Long actualParentId;
|
||||
|
||||
/**
|
||||
* 实际库区/库位编码
|
||||
*/
|
||||
private String actualWarehouseCode;
|
||||
|
||||
/**
|
||||
* 实际库区/库位名称
|
||||
*/
|
||||
private String actualWarehouseName;
|
||||
|
||||
/**
|
||||
* 类型:0=仓库,1=库区,2=库位,…
|
||||
*/
|
||||
private Long actualWarehouseType;
|
||||
|
||||
/**
|
||||
* 同级排序号
|
||||
*/
|
||||
private Long sortNo;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
46
klp-oa/klp-wms/src/main/java/com/klp/domain/bo/WmsBomBo.java
Normal file
46
klp-oa/klp-wms/src/main/java/com/klp/domain/bo/WmsBomBo.java
Normal file
@@ -0,0 +1,46 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
|
||||
/**
|
||||
* BOM 头,关联产品或原材料业务对象 wms_bom
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-29
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsBomBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* BOM 主键ID
|
||||
*/
|
||||
private Long bomId;
|
||||
|
||||
/**
|
||||
* BOM 编码(可选)
|
||||
*/
|
||||
private String bomCode;
|
||||
|
||||
/**
|
||||
* BOM 名称(可选)
|
||||
*/
|
||||
private String bomName;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 资金日记账业务对象 wms_journal
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsJournalBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long journalId;
|
||||
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date journalDate;
|
||||
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
private String summary;
|
||||
|
||||
/**
|
||||
* 收支类型
|
||||
*/
|
||||
private String transType;
|
||||
|
||||
/**
|
||||
* 对方户名
|
||||
*/
|
||||
private String counterpart;
|
||||
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
private BigDecimal incomeAmount;
|
||||
|
||||
/**
|
||||
* 支出金额
|
||||
*/
|
||||
private BigDecimal expenseAmount;
|
||||
|
||||
/**
|
||||
* 余额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 订单明细业务对象 wms_order_detail
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsOrderDetailBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 明细ID
|
||||
*/
|
||||
private Long detailId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@NotNull(message = "订单ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
@NotNull(message = "产品ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 产品数量
|
||||
*/
|
||||
@NotNull(message = "产品数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 含税单价
|
||||
*/
|
||||
private BigDecimal taxPrice;
|
||||
|
||||
/**
|
||||
* 无税单价
|
||||
*/
|
||||
private BigDecimal noTaxPrice;
|
||||
|
||||
/**
|
||||
* 产品规范组ID
|
||||
*/
|
||||
private Long groupId;
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 其他收支业务对象 wms_other_income
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsOtherIncomeBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 其他收入ID(主键)
|
||||
*/
|
||||
private Long otherIncomeId;
|
||||
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
private Date incomeDate;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String incomeType;
|
||||
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 来源
|
||||
*/
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 收支类型(0=收入,1=值出)
|
||||
*/
|
||||
private Long type;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 工艺业务对象 wms_processe
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-14
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsProcesseBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 工艺ID
|
||||
*/
|
||||
private Long processId;
|
||||
|
||||
/**
|
||||
* 工艺编码
|
||||
*/
|
||||
private String processCode;
|
||||
|
||||
/**
|
||||
* 工艺名称
|
||||
*/
|
||||
private String processName;
|
||||
|
||||
/**
|
||||
* 产出产品(关联产品表,可选)
|
||||
*/
|
||||
private Long outputProductId;
|
||||
|
||||
/**
|
||||
* 工艺描述
|
||||
*/
|
||||
private String processDesc;
|
||||
|
||||
/**
|
||||
* 标准工时(小时)
|
||||
*/
|
||||
private BigDecimal standardTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
100
klp-oa/klp-wms/src/main/java/com/klp/domain/bo/WmsProductBo.java
Normal file
100
klp-oa/klp-wms/src/main/java/com/klp/domain/bo/WmsProductBo.java
Normal file
@@ -0,0 +1,100 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 产品业务对象 wms_product
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsProductBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 负责人
|
||||
*/
|
||||
private String owner;
|
||||
|
||||
/**
|
||||
* 基础材质分类ID
|
||||
*/
|
||||
private Long baseMaterialId;
|
||||
|
||||
/**
|
||||
* 表面处理分类ID
|
||||
*/
|
||||
private Long surfaceTreatmentId;
|
||||
|
||||
/**
|
||||
* 客户需求分类ID
|
||||
*/
|
||||
private Long customerReqId;
|
||||
|
||||
/**
|
||||
* 包装分类ID
|
||||
*/
|
||||
private Long packagingId;
|
||||
|
||||
/**
|
||||
* 厚度(mm)
|
||||
*/
|
||||
private BigDecimal thickness;
|
||||
|
||||
/**
|
||||
* 宽度(mm)
|
||||
*/
|
||||
private BigDecimal width;
|
||||
|
||||
/**
|
||||
* 内径(mm)
|
||||
*/
|
||||
private BigDecimal innerDiameter;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
//备注
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* BOM 表头ID
|
||||
*/
|
||||
private Long bomId;
|
||||
//产品类型
|
||||
private String type;
|
||||
|
||||
//规格
|
||||
private String specification;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
|
||||
/**
|
||||
* 产品规范组业务对象 wms_product_spec_group
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsProductSpecGroupBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 产品规范组编码
|
||||
*/
|
||||
private String groupCode;
|
||||
|
||||
/**
|
||||
* 绑定的产品ID
|
||||
*/
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 产品规范组名称
|
||||
*/
|
||||
private String groupName;
|
||||
|
||||
/**
|
||||
* 状态(字典:1=启用,2=停用)
|
||||
*/
|
||||
private Long status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 产线业务对象 wms_production_line
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsProductionLineBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 产线ID
|
||||
*/
|
||||
private Long lineId;
|
||||
|
||||
/**
|
||||
* 产线编号
|
||||
*/
|
||||
private String lineCode;
|
||||
|
||||
/**
|
||||
* 产线名称
|
||||
*/
|
||||
private String lineName;
|
||||
|
||||
/**
|
||||
* 日产能(单位同产品)
|
||||
*/
|
||||
private BigDecimal capacity;
|
||||
|
||||
/**
|
||||
* 产能单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)业务对象 wms_receivable
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsReceivableBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 应收ID(主键)
|
||||
*/
|
||||
private Long receivableId;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date dueDate;
|
||||
|
||||
/**
|
||||
* 应收金额(可为负数用于调整)
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 已收金额(可为负数用于冲销)
|
||||
*/
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
/**
|
||||
* 未收金额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
//时间范围筛选
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date startTime;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date endTime;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售话术生成器业务对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-01-27
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsSalesScriptGeneratorBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
@NotNull(message = "产品ID不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 产品ID列表(批量生成时使用)
|
||||
*/
|
||||
private List<Long> productIds;
|
||||
|
||||
/**
|
||||
* 话术数量
|
||||
*/
|
||||
@Min(value = 1, message = "话术数量最少为1")
|
||||
@Max(value = 10, message = "话术数量最多为10")
|
||||
private Integer scriptCount = 1;
|
||||
|
||||
/**
|
||||
* 客户类型列表
|
||||
*/
|
||||
private List<String> customerTypes;
|
||||
|
||||
/**
|
||||
* 是否保存到数据库
|
||||
*/
|
||||
private Boolean saveToDatabase = false;
|
||||
|
||||
/**
|
||||
* 生成模式:single(单个产品), batch(批量产品), preview(预览模式)
|
||||
*/
|
||||
private String generationMode = "single";
|
||||
|
||||
/**
|
||||
* 自定义提示词
|
||||
*/
|
||||
private String customPrompt;
|
||||
|
||||
/**
|
||||
* 温度参数
|
||||
*/
|
||||
@Min(value = 0, message = "温度参数不能小于0")
|
||||
@Max(value = 2, message = "温度参数不能大于2")
|
||||
private Double temperature = 1.0;
|
||||
|
||||
/**
|
||||
* 最大重试次数
|
||||
*/
|
||||
@Min(value = 1, message = "最大重试次数最少为1")
|
||||
@Max(value = 5, message = "最大重试次数最多为5")
|
||||
private Integer maxRetries = 3;
|
||||
|
||||
/**
|
||||
* 是否包含BOM信息
|
||||
*/
|
||||
private Boolean includeBomInfo = true;
|
||||
|
||||
/**
|
||||
* 是否包含技术参数
|
||||
*/
|
||||
private Boolean includeTechParams = true;
|
||||
|
||||
/**
|
||||
* 是否包含材料优势
|
||||
*/
|
||||
private Boolean includeMaterialAdvantages = true;
|
||||
|
||||
/**
|
||||
* 话术风格:professional(专业), friendly(友好), persuasive(说服力强)
|
||||
*/
|
||||
private String scriptStyle = "professional";
|
||||
|
||||
/**
|
||||
* 语言:zh(中文), en(英文)
|
||||
*/
|
||||
private String language = "zh";
|
||||
|
||||
/**
|
||||
* 行业类型
|
||||
*/
|
||||
private String industryType;
|
||||
|
||||
/**
|
||||
* 目标客户群体
|
||||
*/
|
||||
private String targetCustomerGroup;
|
||||
|
||||
/**
|
||||
* 产品应用场景
|
||||
*/
|
||||
private String applicationScenario;
|
||||
|
||||
/**
|
||||
* 竞争优势
|
||||
*/
|
||||
private String competitiveAdvantage;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 出入库单明细业务对象 wms_stock_io_detail
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsStockIoDetailBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 明细ID
|
||||
*/
|
||||
private Long detailId;
|
||||
|
||||
/**
|
||||
* 出入库单ID
|
||||
*/
|
||||
@NotNull(message = "出入库单ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long stockIoId;
|
||||
|
||||
/**
|
||||
* 库区/库位ID
|
||||
*/
|
||||
@NotNull(message = "库区/库位ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long warehouseId;
|
||||
|
||||
/**
|
||||
* 物品类型(raw_material/product)
|
||||
*/
|
||||
@NotBlank(message = "物品类型(raw_material/product)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 物品ID
|
||||
*/
|
||||
@NotNull(message = "物品ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long itemId;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@NotNull(message = "数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@NotBlank(message = "批次号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 源库位ID(移库时使用)
|
||||
*/
|
||||
private Long fromWarehouseId;
|
||||
|
||||
/**
|
||||
* 记录类型,0:详情,1:扫码枪记录
|
||||
*/
|
||||
private Integer recordType;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 出入库单主+明细批量插入业务对象
|
||||
*/
|
||||
@Data
|
||||
public class WmsStockIoWithDetailBo {
|
||||
// 主表字段
|
||||
/**
|
||||
* 出入库单ID
|
||||
*/
|
||||
private Long stockIoId;
|
||||
|
||||
/**
|
||||
* 出入库单号
|
||||
*/
|
||||
@NotBlank(message = "出入库单号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String stockIoCode;
|
||||
|
||||
/**
|
||||
* 类型(in=入库,out=出库)
|
||||
*/
|
||||
@NotBlank(message = "类型(in=入库,out=出库)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String ioType;
|
||||
|
||||
/**
|
||||
* 业务类型(采购、销售、退货、调拨等)
|
||||
*/
|
||||
@NotBlank(message = "业务类型(采购、销售、退货、调拨等)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String bizType;
|
||||
|
||||
/**
|
||||
* 单据状态(0=草稿,1=已提交,2=已审核,3=已完成)
|
||||
*/
|
||||
@NotNull(message = "单据状态(0=草稿,1=已提交,2=已审核,3=已完成)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
// ...如有其他主表字段可补充
|
||||
|
||||
// 明细列表
|
||||
private List<WmsStockIoDetailBo> details;
|
||||
|
||||
private Long parentId;
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import com.klp.common.core.domain.TreeEntity;
|
||||
|
||||
/**
|
||||
* 仓库/库区/库位自关联业务对象 wms_warehouse
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsWarehouseBo extends TreeEntity<WmsWarehouseBo> {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long warehouseId;
|
||||
|
||||
/**
|
||||
* 仓库/库区编码
|
||||
*/
|
||||
@NotBlank(message = "仓库/库区编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String warehouseCode;
|
||||
|
||||
/**
|
||||
* 仓库/库区名称
|
||||
*/
|
||||
@NotBlank(message = "仓库/库区名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String warehouseName;
|
||||
|
||||
/**
|
||||
* 类型:0=仓库,1=库区,2=库位,…
|
||||
*/
|
||||
@NotNull(message = "类型:0=仓库,1=库区,2=库位,…不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long warehouseType;
|
||||
|
||||
/**
|
||||
* 同级排序号
|
||||
*/
|
||||
private Long sortNo;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据看板概览视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-01-27
|
||||
*/
|
||||
@Data
|
||||
public class DashboardOverviewVO {
|
||||
|
||||
// /**
|
||||
// * 订单汇总
|
||||
// */
|
||||
// private OrderSummaryVO orderSummary;
|
||||
//
|
||||
// /**
|
||||
// * 销售经理饼图
|
||||
// */
|
||||
// private List<SalesManagerPieVO> salesManagerPie;
|
||||
//
|
||||
// /**
|
||||
// * 产品销量排行
|
||||
// */
|
||||
// private List<ProductRankVO> productRank;
|
||||
//
|
||||
// /**
|
||||
// * 订单物料分析
|
||||
// */
|
||||
// private List<OrderMaterialVO> orderMaterial;
|
||||
//
|
||||
// /**
|
||||
// * 客户分布
|
||||
// */
|
||||
// private List<CustomerRegionVO> customerRegion;
|
||||
|
||||
// ========== 新增业务区域 ==========
|
||||
|
||||
/**
|
||||
* 业绩区数据
|
||||
*/
|
||||
private PerformanceAreaVO performanceArea;
|
||||
|
||||
/**
|
||||
* 当前情况区数据
|
||||
*/
|
||||
private CurrentSituationAreaVO currentSituationArea;
|
||||
|
||||
/**
|
||||
* 推荐区数据
|
||||
*/
|
||||
private RecommendationAreaVO recommendationArea;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 图片识别结果视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-01-27
|
||||
*/
|
||||
@Data
|
||||
public class ImageRecognitionVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 图片URL
|
||||
*/
|
||||
private String imageUrl;
|
||||
|
||||
/**
|
||||
* 识别类型
|
||||
*/
|
||||
private String recognitionType;
|
||||
|
||||
/**
|
||||
* 识别结果属性列表
|
||||
*/
|
||||
private List<AttributeVo> attributes;
|
||||
|
||||
/**
|
||||
* 识别状态:success-成功,failed-失败,processing-处理中
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 错误信息
|
||||
*/
|
||||
private String errorMessage;
|
||||
|
||||
/**
|
||||
* 处理时间(毫秒)
|
||||
*/
|
||||
private Long processingTime;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 产线负载信息视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-07-24
|
||||
*/
|
||||
@Data
|
||||
public class LineLoadInfo {
|
||||
|
||||
/**
|
||||
* 产线ID
|
||||
*/
|
||||
private Long lineId;
|
||||
|
||||
/**
|
||||
* 关联的排产计划明细数量
|
||||
*/
|
||||
private Integer planDetailCount;
|
||||
|
||||
/**
|
||||
* 排产天数总和
|
||||
*/
|
||||
private Integer totalPlanDays;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 用于计算排产计划开始结束时间的聚合类
|
||||
*/
|
||||
@Data
|
||||
public class PlanTimeAgg {
|
||||
private Long planId;
|
||||
private Date startDate;
|
||||
private Date endDate;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 产品咨询热度排行视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-07-24
|
||||
*/
|
||||
@Data
|
||||
public class ProductRankingVo {
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 访问次数
|
||||
*/
|
||||
private Long viewCount;
|
||||
|
||||
/**
|
||||
* 排名
|
||||
*/
|
||||
private Integer ranking;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 产品销售情况视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-01-27
|
||||
*/
|
||||
@Data
|
||||
public class ProductSalesPerformanceVO {
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 销售数量
|
||||
*/
|
||||
private Double salesQuantity;
|
||||
|
||||
/**
|
||||
* 销售金额
|
||||
*/
|
||||
private Double salesAmount;
|
||||
|
||||
/**
|
||||
* 销售增长率
|
||||
*/
|
||||
private Double growthRate;
|
||||
|
||||
/**
|
||||
* 销售排名
|
||||
*/
|
||||
private Integer salesRank;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 原料库存和需求情况视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-01-27
|
||||
*/
|
||||
@Data
|
||||
public class RawMaterialInventoryVO {
|
||||
|
||||
/**
|
||||
* 原料名称
|
||||
*/
|
||||
private String materialName;
|
||||
|
||||
/**
|
||||
* 原料编号
|
||||
*/
|
||||
private String materialCode;
|
||||
|
||||
/**
|
||||
* 当前库存数量
|
||||
*/
|
||||
private Double currentStockQuantity;
|
||||
|
||||
/**
|
||||
* 在途数量
|
||||
*/
|
||||
private Double inTransitQuantity;
|
||||
|
||||
/**
|
||||
* 总需求数量
|
||||
*/
|
||||
private Double totalRequiredQuantity;
|
||||
|
||||
/**
|
||||
* 库存缺口
|
||||
*/
|
||||
private Double stockGap;
|
||||
|
||||
/**
|
||||
* 安全库存
|
||||
*/
|
||||
private Double safetyStock;
|
||||
|
||||
/**
|
||||
* 库存状态(充足/不足/紧急)
|
||||
*/
|
||||
private String stockStatus;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 推荐区视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-01-27
|
||||
*/
|
||||
@Data
|
||||
public class RecommendationAreaVO {
|
||||
|
||||
/**
|
||||
* 订单维度推荐
|
||||
*/
|
||||
private List<OrderRecommendationVO> orderRecommendations;
|
||||
|
||||
/**
|
||||
* 原料维度推荐
|
||||
*/
|
||||
private List<MaterialRecommendationVO> materialRecommendations;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 销售人员业绩视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-01-27
|
||||
*/
|
||||
@Data
|
||||
public class SalesPersonPerformanceVO {
|
||||
|
||||
/**
|
||||
* 销售人员姓名
|
||||
*/
|
||||
private String salesPersonName;
|
||||
|
||||
/**
|
||||
* 订单数量
|
||||
*/
|
||||
private Integer orderCount;
|
||||
|
||||
/**
|
||||
* 销售金额
|
||||
*/
|
||||
private Double salesAmount;
|
||||
|
||||
/**
|
||||
* 完成率
|
||||
*/
|
||||
private Double completionRate;
|
||||
|
||||
/**
|
||||
* 业绩排名
|
||||
*/
|
||||
private Integer performanceRank;
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 会计科目视图对象 wms_account
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsAccountVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 科目ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "科目ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 科目编码
|
||||
*/
|
||||
@ExcelProperty(value = "科目编码")
|
||||
private String accountCode;
|
||||
|
||||
/**
|
||||
* 科目名称
|
||||
*/
|
||||
@ExcelProperty(value = "科目名称")
|
||||
private String accountName;
|
||||
|
||||
/**
|
||||
* 科目类型
|
||||
*/
|
||||
@ExcelProperty(value = "科目类型")
|
||||
private String accountType;
|
||||
|
||||
/**
|
||||
* 上级科目ID
|
||||
*/
|
||||
@ExcelProperty(value = "上级科目ID")
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 当前余额(可容忍暂时不准确,过账汇总)
|
||||
*/
|
||||
@ExcelProperty(value = "当前余额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=容忍暂时不准确,过账汇总")
|
||||
private BigDecimal balance;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 实际库区/库位自关联视图对象 wms_actual_warehouse
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsActualWarehouseVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long actualWarehouseId;
|
||||
|
||||
/**
|
||||
* 父节点ID(指向同表 warehouse_id)
|
||||
*/
|
||||
@ExcelProperty(value = "父节点ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "指=向同表,w=arehouse_id")
|
||||
private Long actualParentId;
|
||||
|
||||
/**
|
||||
* 实际库区/库位编码
|
||||
*/
|
||||
@ExcelProperty(value = "实际库区/库位编码")
|
||||
private String actualWarehouseCode;
|
||||
|
||||
/**
|
||||
* 实际库区/库位名称
|
||||
*/
|
||||
@ExcelProperty(value = "实际库区/库位名称")
|
||||
private String actualWarehouseName;
|
||||
|
||||
/**
|
||||
* 类型:0=仓库,1=库区,2=库位,…
|
||||
*/
|
||||
@ExcelProperty(value = "类型:0=仓库,1=库区,2=库位,…")
|
||||
private Long actualWarehouseType;
|
||||
|
||||
/**
|
||||
* 同级排序号
|
||||
*/
|
||||
@ExcelProperty(value = "同级排序号")
|
||||
private Long sortNo;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否启用", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0==否,1=是")
|
||||
private Integer isEnabled;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* BOM 明细,存放属性–值视图对象 wms_bom_item
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-29
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsBomItemVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 属性名称
|
||||
*/
|
||||
@ExcelProperty(value = "属性名称")
|
||||
private String attrKey;
|
||||
|
||||
/**
|
||||
* 属性值
|
||||
*/
|
||||
@ExcelProperty(value = "属性值")
|
||||
private String attrValue;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否启用", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "common_swicth")
|
||||
private Integer isEnabled;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
/**
|
||||
* BOM ID
|
||||
*/
|
||||
@ExcelProperty(value = "BOM ID")
|
||||
private Long bomId;
|
||||
/**
|
||||
* BOM 明细ID
|
||||
*/
|
||||
@ExcelProperty(value = "BOM 明细ID")
|
||||
private Long itemId;
|
||||
|
||||
|
||||
}
|
||||
56
klp-oa/klp-wms/src/main/java/com/klp/domain/vo/WmsBomVo.java
Normal file
56
klp-oa/klp-wms/src/main/java/com/klp/domain/vo/WmsBomVo.java
Normal file
@@ -0,0 +1,56 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* BOM 头,关联产品或原材料视图对象 wms_bom
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-29
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsBomVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* BOM 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "BOM 主键ID")
|
||||
private Long bomId;
|
||||
|
||||
/**
|
||||
* BOM 编码(可选)
|
||||
*/
|
||||
@ExcelProperty(value = "BOM 编码", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=选")
|
||||
private String bomCode;
|
||||
|
||||
/**
|
||||
* BOM 名称(可选)
|
||||
*/
|
||||
@ExcelProperty(value = "BOM 名称", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=选")
|
||||
private String bomName;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否启用", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0==否,1=是")
|
||||
private Integer isEnabled;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 通用分类视图对象 wms_category
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsCategoryVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 分类主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "分类主键ID")
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 分类类型(base_material|surface_treatment|customer_req|spec_packaging)
|
||||
*/
|
||||
@ExcelProperty(value = "分类类型(base_material|surface_treatment|customer_req|spec_packaging)")
|
||||
private String categoryType;
|
||||
|
||||
/**
|
||||
* 分类编码
|
||||
*/
|
||||
@ExcelProperty(value = "分类编码")
|
||||
private String categoryCode;
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
@ExcelProperty(value = "分类名称")
|
||||
private String categoryName;
|
||||
|
||||
/**
|
||||
* 分类描述
|
||||
*/
|
||||
@ExcelProperty(value = "分类描述")
|
||||
private String categoryDesc;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否启用(0=否,1=是)")
|
||||
private Integer isEnabled;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 钢卷待操作视图对象 wms_coil_pending_action
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsCoilPendingActionVo extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long actionId;
|
||||
|
||||
/**
|
||||
* 关联的钢卷ID
|
||||
*/
|
||||
@ExcelProperty(value = "钢卷ID")
|
||||
private Long coilId;
|
||||
|
||||
/**
|
||||
* 当前钢卷号
|
||||
*/
|
||||
@ExcelProperty(value = "钢卷号")
|
||||
private String currentCoilNo;
|
||||
|
||||
/**
|
||||
* 操作类型(1=分卷,2=合卷,3=更新)
|
||||
*/
|
||||
@ExcelProperty(value = "操作类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "wms_coil_action_type")
|
||||
private Integer actionType;
|
||||
|
||||
/**
|
||||
* 操作状态(0=待处理,1=处理中,2=已完成,3=已取消)
|
||||
*/
|
||||
@ExcelProperty(value = "操作状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "wms_action_status")
|
||||
private Integer actionStatus;
|
||||
|
||||
/**
|
||||
* 扫码时间
|
||||
*/
|
||||
@ExcelProperty(value = "扫码时间")
|
||||
private Date scanTime;
|
||||
|
||||
/**
|
||||
* 扫码设备
|
||||
*/
|
||||
@ExcelProperty(value = "扫码设备")
|
||||
private String scanDevice;
|
||||
|
||||
/**
|
||||
* 优先级(0=普通,1=重要,2=紧急)
|
||||
*/
|
||||
@ExcelProperty(value = "优先级", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "wms_action_priority")
|
||||
private Integer priority;
|
||||
|
||||
/**
|
||||
* 来源类型
|
||||
*/
|
||||
@ExcelProperty(value = "来源类型")
|
||||
private String sourceType;
|
||||
|
||||
/**
|
||||
* 所在库区ID
|
||||
*/
|
||||
private Long warehouseId;
|
||||
|
||||
/**
|
||||
* 库区名称
|
||||
*/
|
||||
@ExcelProperty(value = "库区")
|
||||
private String warehouseName;
|
||||
|
||||
/**
|
||||
* 操作人ID
|
||||
*/
|
||||
private Long operatorId;
|
||||
|
||||
/**
|
||||
* 操作人姓名
|
||||
*/
|
||||
@ExcelProperty(value = "操作人")
|
||||
private String operatorName;
|
||||
|
||||
/**
|
||||
* 处理时间
|
||||
*/
|
||||
@ExcelProperty(value = "处理时间")
|
||||
private Date processTime;
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
@ExcelProperty(value = "完成时间")
|
||||
private Date completeTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ExcelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
// 钢卷相关信息(关联查询)
|
||||
/**
|
||||
* 钢种
|
||||
*/
|
||||
private String grade;
|
||||
|
||||
/**
|
||||
* 厚度
|
||||
*/
|
||||
private Double thickness;
|
||||
|
||||
/**
|
||||
* 宽度
|
||||
*/
|
||||
private Double width;
|
||||
|
||||
/**
|
||||
* 重量
|
||||
*/
|
||||
private Double weight;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 快递问题视图对象 oa_express_question
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-07-21
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsExpressQuestionVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long questionId;
|
||||
|
||||
/**
|
||||
* 关联快递
|
||||
*/
|
||||
@ExcelProperty(value = "关联快递")
|
||||
private Long expressId;
|
||||
|
||||
/**
|
||||
* 问题描述
|
||||
*/
|
||||
@ExcelProperty(value = "问题描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 汇报时间
|
||||
*/
|
||||
@ExcelProperty(value = "汇报时间")
|
||||
private Date reportTime;
|
||||
|
||||
/**
|
||||
* 汇报人
|
||||
*/
|
||||
@ExcelProperty(value = "汇报人")
|
||||
private String reportBy;
|
||||
|
||||
/**
|
||||
* 0未解决1已解决
|
||||
*/
|
||||
@ExcelProperty(value = "状态")
|
||||
private Long status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 快递单号
|
||||
*/
|
||||
private String expressCode;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 财务单据视图对象 wms_financial_document
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsFinancialDocumentVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 单据ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "单据ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long documentId;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
@ExcelProperty(value = "单据编号")
|
||||
private String docNo;
|
||||
|
||||
/**
|
||||
* 单据类型
|
||||
*/
|
||||
@ExcelProperty(value = "单据类型")
|
||||
private String docType;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date docDate;
|
||||
|
||||
/**
|
||||
* 单据金额
|
||||
*/
|
||||
@ExcelProperty(value = "单据金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 关联订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "关联订单ID")
|
||||
private Long relatedOrderId;
|
||||
|
||||
/**
|
||||
* 单据状态
|
||||
*/
|
||||
@ExcelProperty(value = "单据状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
//明细列表
|
||||
private List<WmsJournalEntryVo> detailList;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 二维码生成记录视图对象 wms_generate_record
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-09-10
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsGenerateRecordVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ExcelProperty(value = "主键")
|
||||
private Long recordId;
|
||||
|
||||
/**
|
||||
* 二维码类型(字典,默认为0)
|
||||
*/
|
||||
@ExcelProperty(value = "二维码类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典,默认为0")
|
||||
private Long qrcodeType;
|
||||
|
||||
/**
|
||||
* 二维码内容(JSON格式)
|
||||
*/
|
||||
@ExcelProperty(value = "二维码内容", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "J=SON格式")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 是否启用(0:启用,1:禁用)
|
||||
*/
|
||||
@ExcelProperty(value = "是否启用", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:启用,1:禁用")
|
||||
private Long isEnabled;
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@ExcelProperty(value = "编号")
|
||||
private String serialNumber;
|
||||
|
||||
/**
|
||||
* 二维码尺寸(像素)
|
||||
*/
|
||||
@ExcelProperty(value = "二维码尺寸", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "像=素")
|
||||
private Long size;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
//状态
|
||||
private Integer status;
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 制造规范视图对象 wms_manufacturing_spec
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-25
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsManufacturingSpecVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ExcelProperty(value = "主键")
|
||||
private Long specId;
|
||||
|
||||
/**
|
||||
* 制造规范编码
|
||||
*/
|
||||
@ExcelProperty(value = "制造规范编码")
|
||||
private String specCode;
|
||||
|
||||
/**
|
||||
* 制造规范名称
|
||||
*/
|
||||
@ExcelProperty(value = "制造规范名称")
|
||||
private String specName;
|
||||
|
||||
/**
|
||||
* 所属事业部
|
||||
*/
|
||||
@ExcelProperty(value = "所属事业部")
|
||||
private String businessUnit;
|
||||
|
||||
/**
|
||||
* 所属项目组
|
||||
*/
|
||||
@ExcelProperty(value = "所属项目组")
|
||||
private String projectTeam;
|
||||
|
||||
/**
|
||||
* 产品型号/模组
|
||||
*/
|
||||
@ExcelProperty(value = "产品型号/模组")
|
||||
private String productModule;
|
||||
|
||||
/**
|
||||
* 标识
|
||||
*/
|
||||
@ExcelProperty(value = "标识")
|
||||
private String identifier;
|
||||
|
||||
/**
|
||||
* 材质
|
||||
*/
|
||||
@ExcelProperty(value = "材质")
|
||||
private String material;
|
||||
|
||||
/**
|
||||
* 规格/尺寸
|
||||
*/
|
||||
@ExcelProperty(value = "规格/尺寸")
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 工艺路线
|
||||
*/
|
||||
@ExcelProperty(value = "工艺路线")
|
||||
private String processRoute;
|
||||
|
||||
/**
|
||||
* 工艺参数
|
||||
*/
|
||||
@ExcelProperty(value = "工艺参数")
|
||||
private String processParams;
|
||||
|
||||
/**
|
||||
* 适用范围
|
||||
*/
|
||||
@ExcelProperty(value = "适用范围")
|
||||
private String scope;
|
||||
|
||||
/**
|
||||
* 检验标准
|
||||
*/
|
||||
@ExcelProperty(value = "检验标准")
|
||||
private String inspectionStandard;
|
||||
|
||||
/**
|
||||
* 状态(字典:1=启用,2=未启用,3=作废)
|
||||
*/
|
||||
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典:1=启用,2=未启用,3=作废")
|
||||
private Long status;
|
||||
|
||||
/**
|
||||
* 规范类型(字典:1=普通规范,2=新试规范,3=临时规范)
|
||||
*/
|
||||
@ExcelProperty(value = "规范类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典:1=普通规范,2=新试规范,3=临时规范")
|
||||
private Long specType;
|
||||
|
||||
/**
|
||||
* 版本日期
|
||||
*/
|
||||
@ExcelProperty(value = "版本日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date versionDate;
|
||||
|
||||
/**
|
||||
* 理论工时(h)
|
||||
*/
|
||||
@ExcelProperty(value = "理论工时(h)")
|
||||
private BigDecimal standardHours;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 订单盈亏视图对象 wms_order_profit
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsOrderProfitVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 盈亏ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "盈亏ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long profitId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 成本金额
|
||||
*/
|
||||
@ExcelProperty(value = "成本金额")
|
||||
private BigDecimal costAmount;
|
||||
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
@ExcelProperty(value = "收入金额")
|
||||
private BigDecimal revenueAmount;
|
||||
|
||||
/**
|
||||
* 利润金额
|
||||
*/
|
||||
@ExcelProperty(value = "利润金额")
|
||||
private BigDecimal profitAmount;
|
||||
|
||||
/**
|
||||
* 利润率(%)
|
||||
*/
|
||||
@ExcelProperty(value = "利润率(%)")
|
||||
private BigDecimal profitRate;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 其他收支视图对象 wms_other_income
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-26
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsOtherIncomeVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 其他收入ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "其他收入ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long otherIncomeId;
|
||||
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
@ExcelProperty(value = "日期")
|
||||
private Date incomeDate;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String incomeType;
|
||||
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
@ExcelProperty(value = "金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 来源
|
||||
*/
|
||||
@ExcelProperty(value = "来源")
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 收支类型(0=收入,1=值出)
|
||||
*/
|
||||
@ExcelProperty(value = "收支类型(0=收入,1=值出)")
|
||||
private Long type;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)视图对象 wms_payable
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsPayableVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 应付ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "应付ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long payableId;
|
||||
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
@ExcelProperty(value = "供应商ID")
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
@ExcelProperty(value = "到期日")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date dueDate;
|
||||
|
||||
/**
|
||||
* 应付金额(可为负数用于调整)
|
||||
*/
|
||||
@ExcelProperty(value = "应付金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=为负数用于调整")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 已付金额(可为负数用于冲销)
|
||||
*/
|
||||
@ExcelProperty(value = "已付金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=为负数用于冲销")
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
/**
|
||||
* 未付金额
|
||||
*/
|
||||
@ExcelProperty(value = "未付金额")
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@ExcelProperty(value = "状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
@ExcelProperty(value = "供应商名称")
|
||||
private String supplierName;
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 产品BOM(产品-原材料清单)视图对象 wms_product_bom
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsProductBomVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* BOM主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "BOM主键ID")
|
||||
private Long bomId;
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
@ExcelProperty(value = "产品ID")
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 原材料ID
|
||||
*/
|
||||
@ExcelProperty(value = "原材料ID")
|
||||
private Long rawMaterialId;
|
||||
|
||||
/**
|
||||
* 每个产品所需原材料数量
|
||||
*/
|
||||
@ExcelProperty(value = "每个产品所需原材料数量")
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@ExcelProperty(value = "单位")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
/**
|
||||
* 产品编码
|
||||
*/
|
||||
private String productCode;
|
||||
/**
|
||||
* 原材料名称
|
||||
*/
|
||||
private String rawMaterialName;
|
||||
/**
|
||||
* 原材料编码
|
||||
*/
|
||||
private String rawMaterialCode;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 产品生产工艺(预定义产品所需工艺)视图对象 wms_product_processe
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-14
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsProductProcesseVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long ppId;
|
||||
|
||||
/**
|
||||
* 产品ID(关联产品表)
|
||||
*/
|
||||
@ExcelProperty(value = "产品ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "关=联产品表")
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 工艺ID(关联工艺表)
|
||||
*/
|
||||
@ExcelProperty(value = "工艺ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "关=联工艺表")
|
||||
private Long processId;
|
||||
|
||||
/**
|
||||
* 工艺顺序(同一产品的工艺执行顺序)
|
||||
*/
|
||||
@ExcelProperty(value = "工艺顺序", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "同=一产品的工艺执行顺序")
|
||||
private Long processSequence;
|
||||
|
||||
/**
|
||||
* 是否必选工艺:1-是/0-否
|
||||
*/
|
||||
@ExcelProperty(value = "是否必选工艺:1-是/0-否")
|
||||
private Long isRequired;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 采购计划主视图对象 wms_purchase_plan
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsPurchasePlanVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 采购计划ID
|
||||
*/
|
||||
@ExcelProperty(value = "采购计划ID")
|
||||
private Long planId;
|
||||
|
||||
/**
|
||||
* 采购计划编号
|
||||
*/
|
||||
@ExcelProperty(value = "采购计划编号")
|
||||
private String planCode;
|
||||
|
||||
/**
|
||||
* 负责人
|
||||
*/
|
||||
@ExcelProperty(value = "负责人")
|
||||
private String owner;
|
||||
|
||||
/**
|
||||
* 关联订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "关联订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 状态(0=新建,1=待审核,2=已审核,3=已完成,4=已取消)
|
||||
*/
|
||||
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0==新建,1=待审核,2=已审核,3=已完成,4=已取消")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 附件信息
|
||||
*/
|
||||
@ExcelProperty(value = "附件信息")
|
||||
private String attachmentInfo;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 采购计划明细列表
|
||||
*/
|
||||
private List<WmsPurchasePlanDetailVo> detailList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 原材料视图对象 wms_raw_material
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsRawMaterialVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long rawMaterialId;
|
||||
|
||||
/**
|
||||
* 原材料编号
|
||||
*/
|
||||
@ExcelProperty(value = "原材料编号")
|
||||
private String rawMaterialCode;
|
||||
|
||||
/**
|
||||
* 原材料名称
|
||||
*/
|
||||
@ExcelProperty(value = "原材料名称")
|
||||
private String rawMaterialName;
|
||||
|
||||
/**
|
||||
* 钢种/牌号(如SPHC、SPHE、S350GD等)
|
||||
*/
|
||||
@ExcelProperty(value = "钢种/牌号", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=SPHC、SPHE、S350GD等")
|
||||
private String steelGrade;
|
||||
|
||||
/**
|
||||
* 目标冷轧牌号(如SPCC、DC06、SGCC等)
|
||||
*/
|
||||
@ExcelProperty(value = "目标冷轧牌号", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=SPCC、DC06、SGCC等")
|
||||
private String targetColdGrade;
|
||||
|
||||
/**
|
||||
* 基础材质分类ID
|
||||
*/
|
||||
@ExcelProperty(value = "基础材质分类ID")
|
||||
private Long baseMaterialId;
|
||||
|
||||
/**
|
||||
* 表面处理分类ID
|
||||
*/
|
||||
@ExcelProperty(value = "表面处理分类ID")
|
||||
private Long surfaceTreatmentId;
|
||||
|
||||
/**
|
||||
* 厚度(mm)
|
||||
*/
|
||||
@ExcelProperty(value = "厚度", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "m=m")
|
||||
private BigDecimal thickness;
|
||||
|
||||
/**
|
||||
* 厚度偏差(mm)
|
||||
*/
|
||||
@ExcelProperty(value = "厚度偏差", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "m=m")
|
||||
private BigDecimal thicknessDeviation;
|
||||
|
||||
/**
|
||||
* 宽度(mm)
|
||||
*/
|
||||
@ExcelProperty(value = "宽度", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "m=m")
|
||||
private BigDecimal width;
|
||||
|
||||
/**
|
||||
* 目标冷轧宽度(mm)
|
||||
*/
|
||||
@ExcelProperty(value = "目标冷轧宽度", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "m=m")
|
||||
private BigDecimal targetColdWidth;
|
||||
|
||||
/**
|
||||
* 目标冷轧厚度(mm)
|
||||
*/
|
||||
@ExcelProperty(value = "目标冷轧厚度", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "m=m")
|
||||
private BigDecimal targetColdThickness;
|
||||
|
||||
/**
|
||||
* 凸度(mm)
|
||||
*/
|
||||
@ExcelProperty(value = "凸度", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "m=m")
|
||||
private BigDecimal crown;
|
||||
|
||||
/**
|
||||
* 卷重(kg)
|
||||
*/
|
||||
@ExcelProperty(value = "卷重", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "k=g")
|
||||
private BigDecimal coilWeight;
|
||||
|
||||
/**
|
||||
* 表面质量
|
||||
*/
|
||||
@ExcelProperty(value = "表面质量")
|
||||
private String surfaceQuality;
|
||||
|
||||
/**
|
||||
* 硬度(HV5)
|
||||
*/
|
||||
@ExcelProperty(value = "硬度", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "H=V5")
|
||||
private BigDecimal hardnessHv5;
|
||||
|
||||
/**
|
||||
* 硬度差值(HV5差值≤15为合格)
|
||||
*/
|
||||
@ExcelProperty(value = "硬度差值", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "H=V5差值≤15为合格")
|
||||
private BigDecimal hardnessDiff;
|
||||
|
||||
/**
|
||||
* 锰含量Mn(%)
|
||||
*/
|
||||
@ExcelProperty(value = "锰含量Mn", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal compositionMn;
|
||||
|
||||
/**
|
||||
* 磷含量P(%)
|
||||
*/
|
||||
@ExcelProperty(value = "磷含量P", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal compositionP;
|
||||
|
||||
/**
|
||||
* 晶粒级别(如ASTM 6-8级,仅电工钢)
|
||||
*/
|
||||
@ExcelProperty(value = "晶粒级别", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=ASTM,6=-8级,仅电工钢")
|
||||
private String grainSize;
|
||||
|
||||
/**
|
||||
* 头尾切除标记(0=否,1=是,汽车板专用)
|
||||
*/
|
||||
@ExcelProperty(value = "头尾切除标记", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0==否,1=是,汽车板专用")
|
||||
private Integer headTailCutFlag;
|
||||
|
||||
/**
|
||||
* 检测结论(如合格/条纹/微裂纹/成分偏析等)
|
||||
*/
|
||||
@ExcelProperty(value = "检测结论", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=合格/条纹/微裂纹/成分偏析等")
|
||||
private String inspectionResult;
|
||||
|
||||
/**
|
||||
* 是否启用(0=否,1=是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否启用", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0==否,1=是")
|
||||
private Integer isEnabled;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@ExcelProperty(value = "单位")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* BOM 表头ID
|
||||
*/
|
||||
@ExcelProperty(value = "BOM 表头ID")
|
||||
private Long bomId;
|
||||
|
||||
/**
|
||||
* 需求量
|
||||
*/
|
||||
@ExcelProperty(value = "需求量")
|
||||
private BigDecimal demand;
|
||||
|
||||
/**
|
||||
* 库存量
|
||||
*/
|
||||
@ExcelProperty(value = "库存量")
|
||||
private BigDecimal inventory;
|
||||
|
||||
/**
|
||||
* 在途量
|
||||
*/
|
||||
@ExcelProperty(value = "在途量")
|
||||
private BigDecimal onTheWay;
|
||||
|
||||
|
||||
/**
|
||||
* BOM明细信息
|
||||
*/
|
||||
private List<WmsBomItemVo> bomItems;
|
||||
|
||||
//规格
|
||||
private String specification;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)视图对象 wms_receivable
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsReceivableVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 应收ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "应收ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long receivableId;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
@ExcelProperty(value = "客户ID")
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
@ExcelProperty(value = "到期日")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date dueDate;
|
||||
|
||||
/**
|
||||
* 应收金额(可为负数用于调整)
|
||||
*/
|
||||
@ExcelProperty(value = "应收金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=为负数用于调整")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 已收金额(可为负数用于冲销)
|
||||
*/
|
||||
@ExcelProperty(value = "已收金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=为负数用于冲销")
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
/**
|
||||
* 未收金额
|
||||
*/
|
||||
@ExcelProperty(value = "未收金额")
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@ExcelProperty(value = "状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 客户名称
|
||||
*/
|
||||
@ExcelProperty(value = "客户名称")
|
||||
private String customerName;
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 设计项目汇报详情视图对象 oa_report_detail
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-13
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsReportDetailVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long detailId;
|
||||
|
||||
/**
|
||||
* 关联汇报概述ID(oa_report_summary.id)
|
||||
*/
|
||||
@ExcelProperty(value = "关联汇报概述ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "o=a_report_summary.id")
|
||||
private Long summaryId;
|
||||
|
||||
/**
|
||||
* 设备唯一编号
|
||||
*/
|
||||
@ExcelProperty(value = "设备唯一编号")
|
||||
private String deviceCode;
|
||||
|
||||
/**
|
||||
* 设备类别
|
||||
*/
|
||||
@ExcelProperty(value = "设备类别")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 设备生产说明
|
||||
*/
|
||||
@ExcelProperty(value = "设备生产说明")
|
||||
private String deviceDescription;
|
||||
|
||||
/**
|
||||
* 汇报详情内容(含文字、图像说明等)
|
||||
*/
|
||||
@ExcelProperty(value = "汇报详情内容", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "含=文字、图像说明等")
|
||||
private String reportDetail;
|
||||
|
||||
/**
|
||||
* 关联图像 OSS ID 列表(逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "关联图像 OSS ID 列表", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "逗=号分隔")
|
||||
private String ossIds;
|
||||
|
||||
/**
|
||||
* 关联图像 OSS URL 列表
|
||||
*/
|
||||
@ExcelProperty(value = "关联图像 OSS URL 列表", converter = ExcelDictConvert.class)
|
||||
private String images;
|
||||
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 设计项目汇报概述视图对象 oa_report_summary
|
||||
*
|
||||
* @author cpy
|
||||
* @date 2025-05-13
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsReportSummaryVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long summaryId;
|
||||
|
||||
/**
|
||||
* 汇报标题
|
||||
*/
|
||||
@ExcelProperty(value = "汇报标题")
|
||||
private String reportTitle;
|
||||
|
||||
/**
|
||||
* 汇报日期
|
||||
*/
|
||||
@ExcelProperty(value = "汇报日期")
|
||||
private Date reportDate;
|
||||
|
||||
/**
|
||||
* 汇报人
|
||||
*/
|
||||
@ExcelProperty(value = "汇报人")
|
||||
private String reporter;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
private Long type;
|
||||
|
||||
@ExcelProperty(value = "最近更新时间")
|
||||
private Date lastUpdateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 排产计划明细视图对象 wms_schedule_plan_detail
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsSchedulePlanDetailVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 明细ID
|
||||
*/
|
||||
@ExcelProperty(value = "明细ID")
|
||||
private Long detailId;
|
||||
|
||||
/**
|
||||
* 排产计划ID
|
||||
*/
|
||||
@ExcelProperty(value = "排产计划ID")
|
||||
private Long planId;
|
||||
|
||||
/**
|
||||
* 产线ID
|
||||
*/
|
||||
@ExcelProperty(value = "产线ID")
|
||||
private Long lineId;
|
||||
|
||||
/**
|
||||
* 生产任务id(原批次id)
|
||||
*/
|
||||
@ExcelProperty(value = "生产任务id")
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
@ExcelProperty(value = "产品ID")
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 排产数量
|
||||
*/
|
||||
@ExcelProperty(value = "排产数量")
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 计划开始日期
|
||||
*/
|
||||
@ExcelProperty(value = "计划开始日期")
|
||||
private Date startDate;
|
||||
|
||||
/**
|
||||
* 计划结束日期
|
||||
*/
|
||||
@ExcelProperty(value = "计划结束日期")
|
||||
private Date endDate;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 产线日产能
|
||||
*/
|
||||
private BigDecimal capacity;
|
||||
|
||||
/**
|
||||
* 总产能
|
||||
*/
|
||||
private BigDecimal totalCapacity;
|
||||
|
||||
/**
|
||||
* 目标生产数量
|
||||
*/
|
||||
private BigDecimal planQuantity;
|
||||
|
||||
/**
|
||||
* 天数
|
||||
*/
|
||||
private Integer days;
|
||||
|
||||
/**
|
||||
* 产线名字
|
||||
*/
|
||||
@ExcelProperty(value = "产线名字")
|
||||
private String lineName;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@ExcelProperty(value = "批次号")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 计划名称
|
||||
*/
|
||||
@ExcelProperty(value = "计划名称")
|
||||
private String planName;
|
||||
|
||||
/**
|
||||
* 计划编码
|
||||
*/
|
||||
@ExcelProperty(value = "计划编码")
|
||||
private String planCode;
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 排产计划视图对象 wms_schedule_plan
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsSchedulePlanVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 排产计划ID
|
||||
*/
|
||||
@ExcelProperty(value = "排产计划ID")
|
||||
private Long planId;
|
||||
|
||||
/**
|
||||
* 排产计划编号
|
||||
*/
|
||||
@ExcelProperty(value = "排产计划编号")
|
||||
private String planCode;
|
||||
|
||||
/**
|
||||
* 关联订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "关联订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 状态(0=新建,1=已排产,2=生产中,3=已完成)
|
||||
*/
|
||||
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0==新建,1=已排产,2=生产中,3=已完成")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@ExcelProperty(value = "创建者")
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ExcelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 优先级(0=低,1=中,2=高,3=vip ....)
|
||||
*/
|
||||
@ExcelProperty(value = "优先级")
|
||||
private Long priority;
|
||||
|
||||
// /**
|
||||
// * 工艺路线
|
||||
// */
|
||||
// @ExcelProperty(value = "工艺路线")
|
||||
// private String processRoute;
|
||||
|
||||
/**
|
||||
* 计划开始日期
|
||||
*/
|
||||
@ExcelProperty(value = "计划开始日期")
|
||||
private Date startDate;
|
||||
/**
|
||||
* 计划结束日期
|
||||
*/
|
||||
@ExcelProperty(value = "计划结束日期")
|
||||
private Date endDate;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsBomItem;
|
||||
import com.klp.domain.vo.WmsBomItemVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* BOM 明细,存放属性–值Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-29
|
||||
*/
|
||||
public interface WmsBomItemMapper extends BaseMapperPlus<WmsBomItemMapper, WmsBomItem, WmsBomItemVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsBom;
|
||||
import com.klp.domain.vo.WmsBomVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* BOM 头,关联产品或原材料Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-29
|
||||
*/
|
||||
public interface WmsBomMapper extends BaseMapperPlus<WmsBomMapper, WmsBom, WmsBomVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsCategory;
|
||||
import com.klp.domain.vo.WmsCategoryVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 通用分类Mapper接口
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface WmsCategoryMapper extends BaseMapperPlus<WmsCategoryMapper, WmsCategory, WmsCategoryVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
import com.klp.domain.WmsCoilPendingAction;
|
||||
import com.klp.domain.vo.WmsCoilPendingActionVo;
|
||||
|
||||
/**
|
||||
* 钢卷待操作Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
public interface WmsCoilPendingActionMapper extends BaseMapperPlus<WmsCoilPendingActionMapper, WmsCoilPendingAction, WmsCoilPendingActionVo> {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsContract;
|
||||
import com.klp.domain.vo.WmsContractVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 合同信息Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-12
|
||||
*/
|
||||
public interface WmsContractMapper extends BaseMapperPlus<WmsContractMapper, WmsContract, WmsContractVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsCustomer;
|
||||
import com.klp.domain.vo.WmsCustomerVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* CRM 客户Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-12
|
||||
*/
|
||||
public interface WmsCustomerMapper extends BaseMapperPlus<WmsCustomerMapper, WmsCustomer, WmsCustomerVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsJournalEntry;
|
||||
import com.klp.domain.vo.WmsJournalEntryVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 日记账凭证(宽松版)Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
public interface WmsJournalEntryMapper extends BaseMapperPlus<WmsJournalEntryMapper, WmsJournalEntry, WmsJournalEntryVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsJournal;
|
||||
import com.klp.domain.vo.WmsJournalVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 资金日记账Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
public interface WmsJournalMapper extends BaseMapperPlus<WmsJournalMapper, WmsJournal, WmsJournalVo> {
|
||||
|
||||
/**
|
||||
* 获取最后一条记录的余额 (用于新增记录时计算余额)
|
||||
*/
|
||||
BigDecimal getLastBalance();
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsManufacturingSpec;
|
||||
import com.klp.domain.vo.WmsManufacturingSpecVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 制造规范Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-25
|
||||
*/
|
||||
public interface WmsManufacturingSpecMapper extends BaseMapperPlus<WmsManufacturingSpecMapper, WmsManufacturingSpec, WmsManufacturingSpecVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.klp.domain.WmsOrder;
|
||||
import com.klp.domain.vo.WmsOrderVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 订单主Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface WmsOrderMapper extends BaseMapperPlus<WmsOrderMapper, WmsOrder, WmsOrderVo> {
|
||||
|
||||
Page<WmsOrderVo> selectVoPlusPage(Page<?> page, @Param("ew") Wrapper<WmsOrder> wrapper);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.klp.domain.WmsPayable;
|
||||
import com.klp.domain.vo.WmsPayableVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-13
|
||||
*/
|
||||
public interface WmsPayableMapper extends BaseMapperPlus<WmsPayableMapper, WmsPayable, WmsPayableVo> {
|
||||
|
||||
Page<WmsPayableVo> selectVoPagePlus(Page<Object> build, @Param("ew") QueryWrapper<WmsPayable> lqw);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsProcessTask;
|
||||
import com.klp.domain.vo.WmsProcessTaskVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 工艺任务(生产计划所需工艺任务)Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-14
|
||||
*/
|
||||
public interface WmsProcessTaskMapper extends BaseMapperPlus<WmsProcessTaskMapper, WmsProcessTask, WmsProcessTaskVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsProcesse;
|
||||
import com.klp.domain.vo.WmsProcesseVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 工艺Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-14
|
||||
*/
|
||||
public interface WmsProcesseMapper extends BaseMapperPlus<WmsProcesseMapper, WmsProcesse, WmsProcesseVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsProduct;
|
||||
import com.klp.domain.vo.*;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 产品Mapper接口
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface WmsProductMapper extends BaseMapperPlus<WmsProductMapper, WmsProduct, WmsProductVo> {
|
||||
// // 订单汇总
|
||||
// @Select("SELECT " +
|
||||
// "COUNT(*) AS totalOrderCount, " +
|
||||
// "SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END) AS finishedOrderCount, " +
|
||||
// "ROUND(SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END)/COUNT(*), 4) AS finishedRate, " +
|
||||
// "SUM(CASE WHEN order_status=2 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END) AS monthFinishedOrderCount, " +
|
||||
// "ROUND(SUM(CASE WHEN order_status=2 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END)/COUNT(*), 4) AS monthFinishedRate, " +
|
||||
// "(SELECT COUNT(*) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthTotalOrderCount, " +
|
||||
// "(SELECT SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthFinishedOrderCount, " +
|
||||
// "(SELECT ROUND(SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END)/COUNT(*), 4) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthFinishedRate " +
|
||||
// "FROM wms_order WHERE del_flag=0")
|
||||
// OrderSummaryVO selectOrderSummary();
|
||||
//
|
||||
// // 销售经理饼图
|
||||
// @Select("SELECT sales_manager, SUM(od.quantity) AS totalSales " +
|
||||
// "FROM wms_order o JOIN wms_order_detail od ON o.order_id = od.order_id " +
|
||||
// "WHERE o.order_status = 2 AND o.del_flag=0 GROUP BY o.sales_manager")
|
||||
// List<SalesManagerPieVO> selectSalesManagerPie();
|
||||
//
|
||||
// // 产品销量排行
|
||||
// @Select("SELECT p.product_name, SUM(od.quantity) AS totalSales " +
|
||||
// "FROM wms_order_detail od JOIN wms_product p ON od.product_id = p.product_id " +
|
||||
// "GROUP BY p.product_name ORDER BY totalSales DESC LIMIT 10")
|
||||
// List<ProductRankVO> selectProductRank();
|
||||
//
|
||||
// // 订单物料分析(只分析库存量和销售销量)
|
||||
// @Select("SELECT p.product_name AS materialName, SUM(od.quantity) AS usedCount, " +
|
||||
// "(SELECT IFNULL(SUM(quantity),0) FROM wms_stock s WHERE s.item_type='product' AND s.item_id = p.product_id AND s.del_flag=0) AS stockCount, " +
|
||||
// "0 AS purchaseCycle " +
|
||||
// "FROM wms_order_detail od JOIN wms_product p ON od.product_id = p.product_id " +
|
||||
// "GROUP BY p.product_id, p.product_name")
|
||||
// List<OrderMaterialVO> selectOrderMaterial();
|
||||
//
|
||||
// // 客户分布热力图
|
||||
// @Select("SELECT o.customer_name AS region, COUNT(*) AS customerCount " +
|
||||
// "FROM wms_order o WHERE o.del_flag=0 GROUP BY o.customer_name")
|
||||
// List<CustomerRegionVO> selectCustomerRegion();
|
||||
|
||||
// ========== 新增业务区域查询方法 ==========
|
||||
|
||||
// 业绩区 - 产品销售情况
|
||||
@Select("SELECT p.product_name, p.product_code, " +
|
||||
"SUM(od.quantity) AS salesQuantity, " +
|
||||
"SUM(od.quantity) AS salesAmount, " +
|
||||
"0 AS growthRate, " +
|
||||
"RANK() OVER (ORDER BY SUM(od.quantity) DESC) AS salesRank " +
|
||||
"FROM wms_order_detail od " +
|
||||
"JOIN wms_product p ON od.product_id = p.product_id " +
|
||||
"JOIN wms_order o ON od.order_id = o.order_id " +
|
||||
"WHERE o.order_status = 2 AND o.del_flag = 0 " +
|
||||
"GROUP BY p.product_id, p.product_name, p.product_code " +
|
||||
"ORDER BY salesQuantity DESC LIMIT 10")
|
||||
List<ProductSalesPerformanceVO> selectProductSalesPerformance();
|
||||
|
||||
// 业绩区 - 销售人员业绩
|
||||
@Select("SELECT o.sales_manager AS salesPersonName, " +
|
||||
"COUNT(DISTINCT o.order_id) AS orderCount, " +
|
||||
"SUM(od.quantity) AS salesAmount, " +
|
||||
"ROUND(SUM(CASE WHEN o.order_status = 2 THEN 1 ELSE 0 END) / COUNT(*), 4) AS completionRate, " +
|
||||
"RANK() OVER (ORDER BY SUM(od.quantity) DESC) AS performanceRank " +
|
||||
"FROM wms_order o " +
|
||||
"JOIN wms_order_detail od ON o.order_id = od.order_id " +
|
||||
"WHERE o.del_flag = 0 " +
|
||||
"GROUP BY o.sales_manager " +
|
||||
"ORDER BY salesAmount DESC")
|
||||
List<SalesPersonPerformanceVO> selectSalesPersonPerformance();
|
||||
|
||||
// 业绩区 - 总订单数量统计
|
||||
@Select("SELECT " +
|
||||
"COUNT(*) AS totalOrderCount, " +
|
||||
"SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END) AS completedOrderCount, " +
|
||||
"SUM(CASE WHEN order_status = 1 THEN 1 ELSE 0 END) AS inProgressOrderCount, " +
|
||||
"SUM(CASE WHEN order_status = 0 THEN 1 ELSE 0 END) AS pendingOrderCount, " +
|
||||
"SUM(CASE WHEN DATE_FORMAT(create_time, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END) AS monthlyNewOrderCount, " +
|
||||
"ROUND(SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END) / COUNT(*), 4) AS completionRate " +
|
||||
"FROM wms_order WHERE del_flag = 0")
|
||||
OrderCountStatisticsVO selectOrderCountStatistics();
|
||||
|
||||
// 当前情况区 - 订单所需的产品统计
|
||||
@Select("SELECT p.product_name, p.product_code, " +
|
||||
"SUM(od.quantity) AS orderDemandQuantity, " +
|
||||
"IFNULL(s.stockQuantity, 0) AS currentStockQuantity, " +
|
||||
"SUM(od.quantity) - IFNULL(s.stockQuantity, 0) AS stockGap, " +
|
||||
"COUNT(DISTINCT o.order_id) AS relatedOrderCount " +
|
||||
"FROM wms_order_detail od " +
|
||||
"JOIN wms_product p ON od.product_id = p.product_id " +
|
||||
"JOIN wms_order o ON od.order_id = o.order_id " +
|
||||
"LEFT JOIN (SELECT item_id, SUM(quantity) AS stockQuantity FROM wms_stock WHERE item_type = 'product' AND del_flag = 0 GROUP BY item_id) s ON p.product_id = s.item_id " +
|
||||
"WHERE o.order_status IN (0, 1) AND o.del_flag = 0 " +
|
||||
"GROUP BY p.product_id, p.product_name, p.product_code " +
|
||||
"ORDER BY stockGap DESC")
|
||||
List<OrderProductStatisticsVO> selectOrderProductStatistics();
|
||||
|
||||
// 当前情况区 - 根据BOM计算的原料需求
|
||||
@Select("SELECT p.product_name, p.product_code, " +
|
||||
"rm.raw_material_name AS materialName, " +
|
||||
"rm.raw_material_code AS materialCode, " +
|
||||
"SUM(od.quantity * pb.quantity) AS requiredQuantity, " +
|
||||
"IFNULL(s.stockQuantity, 0) AS currentStockQuantity, " +
|
||||
"IFNULL(it.inTransitQuantity, 0) AS inTransitQuantity, " +
|
||||
"SUM(od.quantity * pb.quantity) - IFNULL(s.stockQuantity, 0) - IFNULL(it.inTransitQuantity, 0) AS stockGap " +
|
||||
"FROM wms_order_detail od " +
|
||||
"JOIN wms_product p ON od.product_id = p.product_id " +
|
||||
"JOIN wms_product_bom pb ON p.product_id = pb.product_id " +
|
||||
"JOIN wms_raw_material rm ON pb.raw_material_id = rm.raw_material_id " +
|
||||
"JOIN wms_order o ON od.order_id = o.order_id " +
|
||||
"LEFT JOIN (SELECT item_id, SUM(quantity) AS stockQuantity FROM wms_stock WHERE item_type = 'raw_material' AND del_flag = 0 GROUP BY item_id) s ON rm.raw_material_id = s.item_id " +
|
||||
"LEFT JOIN (SELECT raw_material_id, SUM(quantity) AS inTransitQuantity FROM wms_purchase_plan_detail WHERE status = 1 GROUP BY raw_material_id) it ON rm.raw_material_id = it.raw_material_id " +
|
||||
"WHERE o.order_status IN (0, 1) AND o.del_flag = 0 " +
|
||||
"GROUP BY p.product_id, p.product_name, p.product_code, rm.raw_material_id, rm.raw_material_name, rm.raw_material_code " +
|
||||
"ORDER BY stockGap DESC")
|
||||
List<ProductMaterialRequirementVO> selectProductMaterialRequirements();
|
||||
|
||||
// 当前情况区 - 原料库存和需求情况
|
||||
@Select("SELECT rm.raw_material_name AS materialName, " +
|
||||
"rm.raw_material_code AS materialCode, " +
|
||||
"IFNULL(s.stockQuantity, 0) AS currentStockQuantity, " +
|
||||
"IFNULL(it.inTransitQuantity, 0) AS inTransitQuantity, " +
|
||||
"IFNULL(req.requiredQuantity, 0) AS totalRequiredQuantity, " +
|
||||
"IFNULL(req.requiredQuantity, 0) - IFNULL(s.stockQuantity, 0) - IFNULL(it.inTransitQuantity, 0) AS stockGap, " +
|
||||
"0 AS safetyStock, " +
|
||||
"CASE " +
|
||||
" WHEN IFNULL(req.requiredQuantity, 0) <= IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) THEN '充足' " +
|
||||
" WHEN IFNULL(req.requiredQuantity, 0) <= IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) + 0 THEN '不足' " +
|
||||
" ELSE '紧急' " +
|
||||
"END AS stockStatus " +
|
||||
"FROM wms_raw_material rm " +
|
||||
"LEFT JOIN (SELECT item_id, SUM(quantity) AS stockQuantity FROM wms_stock WHERE item_type = 'raw_material' AND del_flag = 0 GROUP BY item_id) s ON rm.raw_material_id = s.item_id " +
|
||||
"LEFT JOIN (SELECT raw_material_id, SUM(quantity) AS inTransitQuantity FROM wms_purchase_plan_detail WHERE status = 1 GROUP BY raw_material_id) it ON rm.raw_material_id = it.raw_material_id " +
|
||||
"LEFT JOIN (SELECT pb.raw_material_id, SUM(od.quantity * pb.quantity) AS requiredQuantity " +
|
||||
" FROM wms_order_detail od " +
|
||||
" JOIN wms_order o ON od.order_id = o.order_id " +
|
||||
" JOIN wms_product_bom pb ON od.product_id = pb.product_id " +
|
||||
" WHERE o.order_status IN (0, 1) AND o.del_flag = 0 " +
|
||||
" GROUP BY pb.raw_material_id) req ON rm.raw_material_id = req.raw_material_id " +
|
||||
"ORDER BY stockGap DESC")
|
||||
List<RawMaterialInventoryVO> selectRawMaterialInventory();
|
||||
|
||||
// 推荐区 - 订单维度推荐
|
||||
@Select("SELECT o.order_code, o.customer_name, " +
|
||||
"CASE o.order_status " +
|
||||
" WHEN 0 THEN '新建' " +
|
||||
" WHEN 1 THEN '生产中' " +
|
||||
" WHEN 2 THEN '已完成' " +
|
||||
" WHEN 3 THEN '已取消' " +
|
||||
"END AS orderStatus, " +
|
||||
"CASE " +
|
||||
" WHEN o.order_status = 0 THEN '高' " +
|
||||
" WHEN o.order_status = 1 THEN '中' " +
|
||||
" ELSE '低' " +
|
||||
"END AS priority, " +
|
||||
"CASE " +
|
||||
" WHEN o.order_status = 0 THEN '新订单需要及时处理' " +
|
||||
" WHEN o.order_status = 1 THEN '生产中的订单需要关注进度' " +
|
||||
" ELSE '订单已完成或已取消' " +
|
||||
"END AS recommendationReason, " +
|
||||
"CASE " +
|
||||
" WHEN o.order_status = 0 THEN '开始生产' " +
|
||||
" WHEN o.order_status = 1 THEN '检查生产进度' " +
|
||||
" ELSE '无需操作' " +
|
||||
"END AS suggestedAction, " +
|
||||
"DATE_ADD(o.create_time, INTERVAL 30 DAY) AS estimatedCompletionTime " +
|
||||
"FROM wms_order o " +
|
||||
"WHERE o.order_status IN (0, 1) AND o.del_flag = 0 " +
|
||||
"ORDER BY o.create_time ASC LIMIT 10")
|
||||
List<OrderRecommendationVO> selectOrderRecommendations();
|
||||
|
||||
// 推荐区 - 原料维度推荐
|
||||
@Select("SELECT rm.raw_material_name AS materialName, " +
|
||||
"rm.raw_material_code AS materialCode, " +
|
||||
"GREATEST(0, IFNULL(req.requiredQuantity, 0) - IFNULL(s.stockQuantity, 0) - IFNULL(it.inTransitQuantity, 0)) AS recommendedPurchaseQuantity, " +
|
||||
"'默认供应商' AS recommendedSupplier, " +
|
||||
"CASE " +
|
||||
" WHEN IFNULL(req.requiredQuantity, 0) > IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) + 0 THEN '库存不足,需要紧急采购' " +
|
||||
" WHEN IFNULL(req.requiredQuantity, 0) > IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) THEN '库存不足,建议采购' " +
|
||||
" ELSE '库存充足' " +
|
||||
"END AS recommendationReason, " +
|
||||
"CASE " +
|
||||
" WHEN IFNULL(req.requiredQuantity, 0) > IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) + 0 THEN '紧急' " +
|
||||
" WHEN IFNULL(req.requiredQuantity, 0) > IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) THEN '一般' " +
|
||||
" ELSE '低' " +
|
||||
"END AS urgencyLevel, " +
|
||||
"DATE_ADD(NOW(), INTERVAL 7 DAY) AS estimatedArrivalTime, " +
|
||||
"CASE " +
|
||||
" WHEN IFNULL(req.requiredQuantity, 0) > IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) + 0 THEN '立即采购' " +
|
||||
" WHEN IFNULL(req.requiredQuantity, 0) > IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) THEN '计划采购' " +
|
||||
" ELSE '无需采购' " +
|
||||
"END AS suggestedAction " +
|
||||
"FROM wms_raw_material rm " +
|
||||
"LEFT JOIN (SELECT item_id, SUM(quantity) AS stockQuantity FROM wms_stock WHERE item_type = 'raw_material' AND del_flag = 0 GROUP BY item_id) s ON rm.raw_material_id = s.item_id " +
|
||||
"LEFT JOIN (SELECT raw_material_id, SUM(quantity) AS inTransitQuantity FROM wms_purchase_plan_detail WHERE status = 1 GROUP BY raw_material_id) it ON rm.raw_material_id = it.raw_material_id " +
|
||||
"LEFT JOIN (SELECT pb.raw_material_id, SUM(od.quantity * pb.quantity) AS requiredQuantity " +
|
||||
" FROM wms_order_detail od " +
|
||||
" JOIN wms_order o ON od.order_id = o.order_id " +
|
||||
" JOIN wms_product_bom pb ON od.product_id = pb.product_id " +
|
||||
" WHERE o.order_status IN (0, 1) AND o.del_flag = 0 " +
|
||||
" GROUP BY pb.raw_material_id) req ON rm.raw_material_id = req.raw_material_id " +
|
||||
"WHERE IFNULL(req.requiredQuantity, 0) > IFNULL(s.stockQuantity, 0) + IFNULL(it.inTransitQuantity, 0) " +
|
||||
"ORDER BY (IFNULL(req.requiredQuantity, 0) - IFNULL(s.stockQuantity, 0) - IFNULL(it.inTransitQuantity, 0)) DESC LIMIT 10")
|
||||
List<MaterialRecommendationVO> selectMaterialRecommendations();
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsProductSpec;
|
||||
import com.klp.domain.vo.WmsProductSpecVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 产品规范(键值对模式)Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-26
|
||||
*/
|
||||
public interface WmsProductSpecMapper extends BaseMapperPlus<WmsProductSpecMapper, WmsProductSpec, WmsProductSpecVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsProductionLine;
|
||||
import com.klp.domain.vo.WmsProductionLineVo;
|
||||
import com.klp.domain.vo.LineLoadInfo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 产线Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface WmsProductionLineMapper extends BaseMapperPlus<WmsProductionLineMapper, WmsProductionLine, WmsProductionLineVo> {
|
||||
|
||||
/**
|
||||
* 批量查询产线负载信息
|
||||
*/
|
||||
List<LineLoadInfo> selectLineLoadInfo(@Param("lineIds") List<Long> lineIds);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.klp.domain.WmsProductionTask;
|
||||
import com.klp.domain.vo.WmsProductionTaskVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 生产任务Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-26
|
||||
*/
|
||||
public interface WmsProductionTaskMapper extends BaseMapperPlus<WmsProductionTaskMapper, WmsProductionTask, WmsProductionTaskVo> {
|
||||
|
||||
Page<WmsProductionTaskVo> selectVoPagePlus(Page<Object> build,@Param("ew") QueryWrapper<WmsProductionTask> lqw);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsPurchasePlan;
|
||||
import com.klp.domain.vo.WmsPurchasePlanVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 采购计划主Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface WmsPurchasePlanMapper extends BaseMapperPlus<WmsPurchasePlanMapper, WmsPurchasePlan, WmsPurchasePlanVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsRawMaterial;
|
||||
import com.klp.domain.vo.WmsRawMaterialVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 原材料Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface WmsRawMaterialMapper extends BaseMapperPlus<WmsRawMaterialMapper, WmsRawMaterial, WmsRawMaterialVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.klp.domain.WmsSchedulePlanDetail;
|
||||
import com.klp.domain.vo.PlanTimeAgg;
|
||||
import com.klp.domain.vo.WmsSchedulePlanDetailVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 排产计划明细Mapper接口
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface WmsSchedulePlanDetailMapper extends BaseMapperPlus<WmsSchedulePlanDetailMapper, WmsSchedulePlanDetail, WmsSchedulePlanDetailVo> {
|
||||
|
||||
List<PlanTimeAgg> selectPlanTimeAgg(@Param("planIds") List<Long> planIds);
|
||||
|
||||
Page<WmsSchedulePlanDetailVo> selectVoPagePlus(Page<Object> build,@Param("ew") QueryWrapper<WmsSchedulePlanDetail> lqw);
|
||||
|
||||
List<WmsSchedulePlanDetailVo> selectVoListWithName(@Param("ew") QueryWrapper<WmsSchedulePlanDetail> lqw);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsSchedulePlan;
|
||||
import com.klp.domain.vo.WmsSchedulePlanVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 排产计划Mapper接口
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface WmsSchedulePlanMapper extends BaseMapperPlus<WmsSchedulePlanMapper, WmsSchedulePlan, WmsSchedulePlanVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.klp.service;
|
||||
|
||||
import com.klp.domain.vo.BatchGroupVo;
|
||||
import com.klp.domain.vo.WmsBatchVo;
|
||||
import com.klp.domain.bo.WmsBatchBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 批次(合并相同工艺的任务)Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2025-08-14
|
||||
*/
|
||||
public interface IWmsBatchService {
|
||||
|
||||
/**
|
||||
* 查询批次(合并相同工艺的任务)
|
||||
*/
|
||||
WmsBatchVo queryById(Long batchId);
|
||||
|
||||
/**
|
||||
* 查询批次(合并相同工艺的任务)列表
|
||||
*/
|
||||
TableDataInfo<WmsBatchVo> queryPageList(WmsBatchBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询批次(合并相同工艺的任务)列表
|
||||
*/
|
||||
List<WmsBatchVo> queryList(WmsBatchBo bo);
|
||||
|
||||
/**
|
||||
* 新增批次(合并相同工艺的任务)
|
||||
*/
|
||||
Boolean insertByBo(WmsBatchBo bo);
|
||||
|
||||
/**
|
||||
* 修改批次(合并相同工艺的任务)
|
||||
*/
|
||||
Boolean updateByBo(WmsBatchBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除批次(合并相同工艺的任务)信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
|
||||
/**
|
||||
* 检测任务执行是否会产生死锁
|
||||
*
|
||||
* @param rows 任务执行顺序数组
|
||||
* @return 是否存在死锁
|
||||
*/
|
||||
boolean checkDeadlock(List<List<Map<String, Object>>> rows);
|
||||
|
||||
/**
|
||||
* 生成不会产生死锁的批次分配方案
|
||||
*
|
||||
* @param rows 任务执行顺序数组
|
||||
* @return 批次分配方案
|
||||
*/
|
||||
List<BatchGroupVo> generateNonDeadlockBatches(List<List<Map<String, Object>>> rows);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.service;
|
||||
|
||||
import com.klp.domain.WmsCategory;
|
||||
import com.klp.domain.vo.WmsCategoryVo;
|
||||
import com.klp.domain.bo.WmsCategoryBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 通用分类Service接口
|
||||
*
|
||||
* @author JR
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
public interface IWmsCategoryService {
|
||||
|
||||
/**
|
||||
* 查询通用分类
|
||||
*/
|
||||
WmsCategoryVo queryById(Long categoryId);
|
||||
|
||||
/**
|
||||
* 查询通用分类列表
|
||||
*/
|
||||
TableDataInfo<WmsCategoryVo> queryPageList(WmsCategoryBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询通用分类列表
|
||||
*/
|
||||
List<WmsCategoryVo> queryList(WmsCategoryBo bo);
|
||||
|
||||
/**
|
||||
* 新增通用分类
|
||||
*/
|
||||
Boolean insertByBo(WmsCategoryBo bo);
|
||||
|
||||
/**
|
||||
* 修改通用分类
|
||||
*/
|
||||
Boolean updateByBo(WmsCategoryBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除通用分类信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.service;
|
||||
|
||||
import com.klp.domain.WmsCustomer;
|
||||
import com.klp.domain.vo.WmsCustomerVo;
|
||||
import com.klp.domain.bo.WmsCustomerBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* CRM 客户Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-08-12
|
||||
*/
|
||||
public interface IWmsCustomerService {
|
||||
|
||||
/**
|
||||
* 查询CRM 客户
|
||||
*/
|
||||
WmsCustomerVo queryById(Long customerId);
|
||||
|
||||
/**
|
||||
* 查询CRM 客户列表
|
||||
*/
|
||||
TableDataInfo<WmsCustomerVo> queryPageList(WmsCustomerBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询CRM 客户列表
|
||||
*/
|
||||
List<WmsCustomerVo> queryList(WmsCustomerBo bo);
|
||||
|
||||
/**
|
||||
* 新增CRM 客户
|
||||
*/
|
||||
Boolean insertByBo(WmsCustomerBo bo);
|
||||
|
||||
/**
|
||||
* 修改CRM 客户
|
||||
*/
|
||||
Boolean updateByBo(WmsCustomerBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除CRM 客户信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.klp.service;
|
||||
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.domain.bo.WmsExpressQuestionBo;
|
||||
import com.klp.domain.vo.WmsExpressQuestionVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 快递问题Service接口
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-07-21
|
||||
*/
|
||||
public interface IWmsExpressQuestionService {
|
||||
|
||||
/**
|
||||
* 查询快递问题
|
||||
*/
|
||||
WmsExpressQuestionVo queryById(Long questionId);
|
||||
|
||||
/**
|
||||
* 查询快递问题列表
|
||||
*/
|
||||
TableDataInfo<WmsExpressQuestionVo> queryPageList(WmsExpressQuestionBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询快递问题列表
|
||||
*/
|
||||
List<WmsExpressQuestionVo> queryList(WmsExpressQuestionBo bo);
|
||||
|
||||
/**
|
||||
* 新增快递问题
|
||||
*/
|
||||
Boolean insertByBo(WmsExpressQuestionBo bo);
|
||||
|
||||
/**
|
||||
* 修改快递问题
|
||||
*/
|
||||
Boolean updateByBo(WmsExpressQuestionBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除快递问题信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user