package com.ruoyi.production.controller;
|
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.framework.aspectj.lang.annotation.Log;
|
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
|
import com.ruoyi.framework.web.domain.R;
|
import com.ruoyi.production.bean.dto.ProductionCostingQueryDto;
|
import com.ruoyi.production.bean.vo.ProductionCostingDetailVo;
|
import com.ruoyi.production.bean.vo.ProductionCostingSummaryVo;
|
import com.ruoyi.production.pojo.ProductionCostingDept;
|
import com.ruoyi.production.pojo.ProductionCostingFactor;
|
import com.ruoyi.production.pojo.ProductionCostingStandard;
|
import com.ruoyi.production.pojo.ProductionCostingWorkday;
|
import com.ruoyi.production.service.ProductionCostingService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.servlet.http.HttpServletResponse;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
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;
|
import java.util.Map;
|
|
/**
|
* 生产核算(成品部门 / 白盒部门)前端控制器
|
*/
|
@RestController
|
@RequestMapping("/productionCosting")
|
@RequiredArgsConstructor
|
@Tag(name = "生产核算")
|
public class ProductionCostingController {
|
|
private final ProductionCostingService productionCostingService;
|
|
@GetMapping("/summary")
|
@Log(title = "生产核算-汇总查询", businessType = BusinessType.OTHER)
|
@Operation(summary = "生产核算按员工汇总")
|
public R<List<ProductionCostingSummaryVo>> summary(ProductionCostingQueryDto dto) {
|
return R.ok(productionCostingService.summary(dto));
|
}
|
|
@GetMapping("/detail")
|
@Log(title = "生产核算-明细查询", businessType = BusinessType.OTHER)
|
@Operation(summary = "生产核算明细查询")
|
public R<List<ProductionCostingDetailVo>> detail(ProductionCostingQueryDto dto) {
|
return R.ok(productionCostingService.detailList(dto));
|
}
|
|
@GetMapping("/workday")
|
@Operation(summary = "查询月份工作日信息")
|
public R<Map<String, Object>> workday(String yearMonth) {
|
return R.ok(productionCostingService.workdayInfo(yearMonth));
|
}
|
|
@PostMapping("/export")
|
@Log(title = "生产核算-导出", businessType = BusinessType.EXPORT)
|
@Operation(summary = "导出生产核算明细")
|
public void export(HttpServletResponse response, ProductionCostingQueryDto dto) {
|
ExcelUtil<ProductionCostingDetailVo> util = new ExcelUtil<>(ProductionCostingDetailVo.class);
|
util.exportExcel(response, productionCostingService.detailList(dto), "生产核算明细");
|
}
|
|
/* ---------------- 部门类型配置 ---------------- */
|
|
@GetMapping("/dept/list")
|
@Operation(summary = "部门类型配置列表")
|
public R<List<ProductionCostingDept>> deptList() {
|
return R.ok(productionCostingService.listDept());
|
}
|
|
@PostMapping("/dept")
|
@Log(title = "生产核算-部门类型配置新增", businessType = BusinessType.INSERT)
|
@Operation(summary = "新增部门类型配置")
|
public R<Boolean> deptAdd(@RequestBody ProductionCostingDept dept) {
|
return R.ok(productionCostingService.saveDept(dept));
|
}
|
|
@PutMapping("/dept")
|
@Log(title = "生产核算-部门类型配置修改", businessType = BusinessType.UPDATE)
|
@Operation(summary = "修改部门类型配置")
|
public R<Boolean> deptEdit(@RequestBody ProductionCostingDept dept) {
|
return R.ok(productionCostingService.updateDept(dept));
|
}
|
|
@DeleteMapping("/dept/{id}")
|
@Log(title = "生产核算-部门类型配置删除", businessType = BusinessType.DELETE)
|
@Operation(summary = "删除部门类型配置")
|
public R<Boolean> deptRemove(@PathVariable Long id) {
|
return R.ok(productionCostingService.removeDept(id));
|
}
|
|
/* ---------------- 标准数量配置 ---------------- */
|
|
@GetMapping("/standard/list")
|
@Operation(summary = "标准数量配置列表")
|
public R<List<ProductionCostingStandard>> standardList(ProductionCostingStandard query) {
|
return R.ok(productionCostingService.listStandard(query));
|
}
|
|
@PostMapping("/standard")
|
@Log(title = "生产核算-标准数量配置新增", businessType = BusinessType.INSERT)
|
@Operation(summary = "新增标准数量配置")
|
public R<Boolean> standardAdd(@RequestBody ProductionCostingStandard standard) {
|
return R.ok(productionCostingService.saveStandard(standard));
|
}
|
|
@PutMapping("/standard")
|
@Log(title = "生产核算-标准数量配置修改", businessType = BusinessType.UPDATE)
|
@Operation(summary = "修改标准数量配置")
|
public R<Boolean> standardEdit(@RequestBody ProductionCostingStandard standard) {
|
return R.ok(productionCostingService.updateStandard(standard));
|
}
|
|
@DeleteMapping("/standard/{id}")
|
@Log(title = "生产核算-标准数量配置删除", businessType = BusinessType.DELETE)
|
@Operation(summary = "删除标准数量配置")
|
public R<Boolean> standardRemove(@PathVariable Long id) {
|
return R.ok(productionCostingService.removeStandard(id));
|
}
|
|
/* ---------------- 折算率配置 ---------------- */
|
|
@GetMapping("/factor/list")
|
@Operation(summary = "折算率配置列表")
|
public R<List<ProductionCostingFactor>> factorList(ProductionCostingFactor query) {
|
return R.ok(productionCostingService.listFactor(query));
|
}
|
|
@PostMapping("/factor")
|
@Log(title = "生产核算-折算率配置新增", businessType = BusinessType.INSERT)
|
@Operation(summary = "新增折算率配置")
|
public R<Boolean> factorAdd(@RequestBody ProductionCostingFactor factor) {
|
return R.ok(productionCostingService.saveFactor(factor));
|
}
|
|
@PutMapping("/factor")
|
@Log(title = "生产核算-折算率配置修改", businessType = BusinessType.UPDATE)
|
@Operation(summary = "修改折算率配置")
|
public R<Boolean> factorEdit(@RequestBody ProductionCostingFactor factor) {
|
return R.ok(productionCostingService.updateFactor(factor));
|
}
|
|
@DeleteMapping("/factor/{id}")
|
@Log(title = "生产核算-折算率配置删除", businessType = BusinessType.DELETE)
|
@Operation(summary = "删除折算率配置")
|
public R<Boolean> factorRemove(@PathVariable Long id) {
|
return R.ok(productionCostingService.removeFactor(id));
|
}
|
|
/* ---------------- 月度工作日配置 ---------------- */
|
|
@GetMapping("/workdayConfig/list")
|
@Operation(summary = "月度工作日配置列表")
|
public R<List<ProductionCostingWorkday>> workdayList(ProductionCostingWorkday query) {
|
return R.ok(productionCostingService.listWorkday(query));
|
}
|
|
@PostMapping("/workdayConfig")
|
@Log(title = "生产核算-月度工作日配置新增", businessType = BusinessType.INSERT)
|
@Operation(summary = "新增月度工作日配置")
|
public R<Boolean> workdayAdd(@RequestBody ProductionCostingWorkday workday) {
|
return R.ok(productionCostingService.saveWorkday(workday));
|
}
|
|
@PutMapping("/workdayConfig")
|
@Log(title = "生产核算-月度工作日配置修改", businessType = BusinessType.UPDATE)
|
@Operation(summary = "修改月度工作日配置")
|
public R<Boolean> workdayEdit(@RequestBody ProductionCostingWorkday workday) {
|
return R.ok(productionCostingService.updateWorkday(workday));
|
}
|
|
@DeleteMapping("/workdayConfig/{id}")
|
@Log(title = "生产核算-月度工作日配置删除", businessType = BusinessType.DELETE)
|
@Operation(summary = "删除月度工作日配置")
|
public R<Boolean> workdayRemove(@PathVariable Long id) {
|
return R.ok(productionCostingService.removeWorkday(id));
|
}
|
}
|