提交基础采购

This commit is contained in:
2025-11-18 16:45:05 +08:00
parent cc9b1c0e92
commit 7c04e13198
77 changed files with 5733 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
package com.klp.erp.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.erp.domain.bo.ErpPurchaseOrderItemBo;
import com.klp.erp.domain.vo.ErpPurchaseOrderItemVo;
import com.klp.erp.service.IErpPurchaseOrderItemService;
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;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/erp/purchaseOrderItem")
public class ErpPurchaseOrderItemController extends BaseController {
private final IErpPurchaseOrderItemService orderItemService;
@GetMapping("/list")
public TableDataInfo<ErpPurchaseOrderItemVo> list(ErpPurchaseOrderItemBo bo, PageQuery pageQuery) {
return orderItemService.queryPageList(bo, pageQuery);
}
@Log(title = "采购订单明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ErpPurchaseOrderItemBo bo, HttpServletResponse response) {
List<ErpPurchaseOrderItemVo> list = orderItemService.queryList(bo);
ExcelUtil.exportExcel(list, "采购订单明细", ErpPurchaseOrderItemVo.class, response);
}
@GetMapping("/{itemId}")
public R<ErpPurchaseOrderItemVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long itemId) {
return R.ok(orderItemService.queryById(itemId));
}
@Log(title = "采购订单明细", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping
public R<Void> add(@Validated(AddGroup.class) @RequestBody ErpPurchaseOrderItemBo bo) {
return toAjax(orderItemService.insertByBo(bo));
}
@Log(title = "采购订单明细", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ErpPurchaseOrderItemBo bo) {
return toAjax(orderItemService.updateByBo(bo));
}
@Log(title = "采购订单明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{itemIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] itemIds) {
return toAjax(orderItemService.deleteWithValidByIds(Arrays.asList(itemIds), true));
}
}

View File

@@ -0,0 +1,74 @@
package com.klp.erp.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.erp.domain.bo.ErpPurchaseReceiptBo;
import com.klp.erp.domain.vo.ErpPurchaseReceiptVo;
import com.klp.erp.service.IErpPurchaseReceiptService;
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;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/erp/purchaseReceipt")
public class ErpPurchaseReceiptController extends BaseController {
private final IErpPurchaseReceiptService receiptService;
@GetMapping("/list")
public TableDataInfo<ErpPurchaseReceiptVo> list(ErpPurchaseReceiptBo bo, PageQuery pageQuery) {
return receiptService.queryPageList(bo, pageQuery);
}
@Log(title = "采购收货记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ErpPurchaseReceiptBo bo, HttpServletResponse response) {
List<ErpPurchaseReceiptVo> list = receiptService.queryList(bo);
ExcelUtil.exportExcel(list, "采购收货记录", ErpPurchaseReceiptVo.class, response);
}
@GetMapping("/{receiptId}")
public R<ErpPurchaseReceiptVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long receiptId) {
return R.ok(receiptService.queryById(receiptId));
}
@Log(title = "采购收货记录", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping
public R<Void> add(@Validated(AddGroup.class) @RequestBody ErpPurchaseReceiptBo bo) {
return toAjax(receiptService.insertByBo(bo));
}
@Log(title = "采购收货记录", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ErpPurchaseReceiptBo bo) {
return toAjax(receiptService.updateByBo(bo));
}
@Log(title = "采购收货记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{receiptIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] receiptIds) {
return toAjax(receiptService.deleteWithValidByIds(Arrays.asList(receiptIds), true));
}
}

View File

@@ -0,0 +1,53 @@
package com.klp.erp.controller;
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.erp.mapper.ErpPurchaseReportMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequiredArgsConstructor
@RequestMapping("/erp/purchaseReport")
public class ErpPurchaseReportController extends BaseController {
private final ErpPurchaseReportMapper reportMapper;
@Log(title = "采购汇总报表", businessType = BusinessType.OTHER)
@GetMapping("/summary")
public R<Map<String, Object>> summary(@RequestParam(required = false) String beginTime,
@RequestParam(required = false) String endTime) {
BigDecimal totalAmount = reportMapper.sumTotalAmount(beginTime, endTime);
List<Map<String, Object>> bySupplier = reportMapper.sumAmountBySupplier(beginTime, endTime);
Map<String, Object> result = new HashMap<>();
result.put("totalAmount", totalAmount);
result.put("bySupplier", bySupplier);
return R.ok(result);
}
@Log(title = "采购价格趋势", businessType = BusinessType.OTHER)
@GetMapping("/trend")
public R<List<Map<String, Object>>> priceTrend(@RequestParam(required = false) String beginTime,
@RequestParam(required = false) String endTime) {
return R.ok(reportMapper.selectPriceTrend(beginTime, endTime));
}
@Log(title = "供应商绩效", businessType = BusinessType.OTHER)
@GetMapping("/supplierQuality")
public R<List<Map<String, Object>>> supplierQuality(@RequestParam(required = false) String beginTime,
@RequestParam(required = false) String endTime) {
return R.ok(reportMapper.selectSupplierQuality(beginTime, endTime));
}
}

View File

@@ -0,0 +1,33 @@
package com.klp.erp.controller;
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.erp.domain.bo.PurchaseRequirementAnalyzeBo;
import com.klp.erp.domain.vo.PurchaseRequirementVo;
import com.klp.erp.service.IErpPurchaseRequirementService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/erp/purchaseRequirement")
public class ErpPurchaseRequirementController extends BaseController {
private final IErpPurchaseRequirementService purchaseRequirementService;
@Log(title = "采购需求分析", businessType = BusinessType.OTHER)
@PostMapping("/analyze")
public R<List<PurchaseRequirementVo>> analyze(@Validated @RequestBody PurchaseRequirementAnalyzeBo bo) {
return R.ok(purchaseRequirementService.analyze(bo));
}
}

View File

@@ -0,0 +1,74 @@
package com.klp.erp.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.erp.domain.bo.ErpPurchaseReturnBo;
import com.klp.erp.domain.vo.ErpPurchaseReturnVo;
import com.klp.erp.service.IErpPurchaseReturnService;
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;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/erp/purchaseReturn")
public class ErpPurchaseReturnController extends BaseController {
private final IErpPurchaseReturnService returnService;
@GetMapping("/list")
public TableDataInfo<ErpPurchaseReturnVo> list(ErpPurchaseReturnBo bo, PageQuery pageQuery) {
return returnService.queryPageList(bo, pageQuery);
}
@Log(title = "采购退货", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ErpPurchaseReturnBo bo, HttpServletResponse response) {
List<ErpPurchaseReturnVo> list = returnService.queryList(bo);
ExcelUtil.exportExcel(list, "采购退货", ErpPurchaseReturnVo.class, response);
}
@GetMapping("/{returnId}")
public R<ErpPurchaseReturnVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long returnId) {
return R.ok(returnService.queryById(returnId));
}
@Log(title = "采购退货", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping
public R<Void> add(@Validated(AddGroup.class) @RequestBody ErpPurchaseReturnBo bo) {
return toAjax(returnService.insertByBo(bo));
}
@Log(title = "采购退货", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ErpPurchaseReturnBo bo) {
return toAjax(returnService.updateByBo(bo));
}
@Log(title = "采购退货", businessType = BusinessType.DELETE)
@DeleteMapping("/{returnIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] returnIds) {
return toAjax(returnService.deleteWithValidByIds(Arrays.asList(returnIds), true));
}
}

View File

@@ -0,0 +1,74 @@
package com.klp.erp.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.erp.domain.bo.ErpPurchaseReturnItemBo;
import com.klp.erp.domain.vo.ErpPurchaseReturnItemVo;
import com.klp.erp.service.IErpPurchaseReturnItemService;
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;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/erp/purchaseReturnItem")
public class ErpPurchaseReturnItemController extends BaseController {
private final IErpPurchaseReturnItemService returnItemService;
@GetMapping("/list")
public TableDataInfo<ErpPurchaseReturnItemVo> list(ErpPurchaseReturnItemBo bo, PageQuery pageQuery) {
return returnItemService.queryPageList(bo, pageQuery);
}
@Log(title = "采购退货明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ErpPurchaseReturnItemBo bo, HttpServletResponse response) {
List<ErpPurchaseReturnItemVo> list = returnItemService.queryList(bo);
ExcelUtil.exportExcel(list, "采购退货明细", ErpPurchaseReturnItemVo.class, response);
}
@GetMapping("/{returnItemId}")
public R<ErpPurchaseReturnItemVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long returnItemId) {
return R.ok(returnItemService.queryById(returnItemId));
}
@Log(title = "采购退货明细", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping
public R<Void> add(@Validated(AddGroup.class) @RequestBody ErpPurchaseReturnItemBo bo) {
return toAjax(returnItemService.insertByBo(bo));
}
@Log(title = "采购退货明细", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ErpPurchaseReturnItemBo bo) {
return toAjax(returnItemService.updateByBo(bo));
}
@Log(title = "采购退货明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{returnItemIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] returnItemIds) {
return toAjax(returnItemService.deleteWithValidByIds(Arrays.asList(returnItemIds), true));
}
}

View File

@@ -0,0 +1,73 @@
package com.klp.erp.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.erp.domain.bo.ErpSupplierBo;
import com.klp.erp.domain.vo.ErpSupplierVo;
import com.klp.erp.service.IErpSupplierService;
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;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/erp/supplier")
public class ErpSupplierController extends BaseController {
private final IErpSupplierService supplierService;
@GetMapping("/list")
public TableDataInfo<ErpSupplierVo> list(ErpSupplierBo bo, PageQuery pageQuery) {
return supplierService.queryPageList(bo, pageQuery);
}
@Log(title = "供应商档案", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ErpSupplierBo bo, HttpServletResponse response) {
List<ErpSupplierVo> list = supplierService.queryList(bo);
ExcelUtil.exportExcel(list, "供应商档案", ErpSupplierVo.class, response);
}
@GetMapping("/{supplierId}")
public R<ErpSupplierVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long supplierId) {
return R.ok(supplierService.queryById(supplierId));
}
@Log(title = "供应商档案", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping
public R<Void> add(@Validated(AddGroup.class) @RequestBody ErpSupplierBo bo) {
return toAjax(supplierService.insertByBo(bo));
}
@Log(title = "供应商档案", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ErpSupplierBo bo) {
return toAjax(supplierService.updateByBo(bo));
}
@Log(title = "供应商档案", businessType = BusinessType.DELETE)
@DeleteMapping("/{supplierIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] supplierIds) {
return toAjax(supplierService.deleteWithValidByIds(Arrays.asList(supplierIds), true));
}
}

View File

@@ -0,0 +1,83 @@
package com.klp.erp.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.erp.domain.bo.ErpSupplierPriceBo;
import com.klp.erp.domain.bo.MaterialTypeQueryBo;
import com.klp.erp.domain.vo.ErpSupplierPriceVo;
import com.klp.erp.domain.vo.MaterialTypeOptionVo;
import com.klp.erp.service.IErpSupplierPriceService;
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;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/erp/supplierPrice")
public class ErpSupplierPriceController extends BaseController {
private final IErpSupplierPriceService supplierPriceService;
@GetMapping("/list")
public TableDataInfo<ErpSupplierPriceVo> list(ErpSupplierPriceBo bo, PageQuery pageQuery) {
return supplierPriceService.queryPageList(bo, pageQuery);
}
@Log(title = "供应商价格", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ErpSupplierPriceBo bo, HttpServletResponse response) {
List<ErpSupplierPriceVo> list = supplierPriceService.queryList(bo);
ExcelUtil.exportExcel(list, "供应商价格", ErpSupplierPriceVo.class, response);
}
@GetMapping("/{priceId}")
public R<ErpSupplierPriceVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long priceId) {
return R.ok(supplierPriceService.queryById(priceId));
}
@Log(title = "供应商价格", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping
public R<Void> add(@Validated(AddGroup.class) @RequestBody ErpSupplierPriceBo bo) {
return toAjax(supplierPriceService.insertByBo(bo));
}
@Log(title = "供应商价格", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ErpSupplierPriceBo bo) {
return toAjax(supplierPriceService.updateByBo(bo));
}
@Log(title = "供应商价格", businessType = BusinessType.DELETE)
@DeleteMapping("/{priceIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] priceIds) {
return toAjax(supplierPriceService.deleteWithValidByIds(Arrays.asList(priceIds), true));
}
/**
* 物料类型下拉
*/
@GetMapping("/material-types")
public R<List<MaterialTypeOptionVo>> materialTypes(MaterialTypeQueryBo bo) {
return R.ok(supplierPriceService.queryMaterialTypeOptions(bo));
}
}