From 8e7a3c666533bbfa7f35ab7d7c8638a54c9f31a7 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 21 四月 2026 16:00:07 +0800
Subject: [PATCH] feat(production): 添加生产管理模块相关DTO、VO及控制器
---
src/main/java/com/ruoyi/production/mapper/ProductionOperationMainParamMapper.java | 18
src/main/java/com/ruoyi/production/bean/dto/ProductionPlanImportDto.java | 177 ++
src/main/java/com/ruoyi/production/service/impl/ProductionProductOutputServiceImpl.java | 20
src/main/resources/mapper/production/ProductProcessMapper.xml | 2
src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingMapper.java | 18
src/main/java/com/ruoyi/production/service/ProductionOrderBomService.java | 16
src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java | 18
src/main/java/com/ruoyi/production/service/impl/ProductionProductInputServiceImpl.java | 20
src/main/resources/mapper/production/ProcessRouteMapper.xml | 4
src/main/java/com/ruoyi/production/service/ProductionOrderPickRecordService.java | 16
src/main/java/com/ruoyi/production/pojo/ProductionOperationTask.java | 79 +
src/main/resources/mapper/production/ProductOrderMapper.xml | 8
src/main/java/com/ruoyi/production/service/ProductionOrderService.java | 16
src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java | 10
src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperationParam.java | 93 +
src/main/java/com/ruoyi/production/controller/ProductionOrderController.java | 8
src/main/java/com/ruoyi/production/service/ProductionOrderRoutingOperationParamService.java | 16
src/main/java/com/ruoyi/production/service/impl/ProductionAccountServiceImpl.java | 20
src/main/resources/mapper/production/SalesLedgerWorkMapper.xml | 2
src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java | 60
src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml | 20
src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java | 20
src/main/java/com/ruoyi/production/service/ProductionOrderRoutingService.java | 16
src/main/java/com/ruoyi/production/mapper/ProductionBomStructureMapper.java | 18
src/main/java/com/ruoyi/production/controller/ProductionPlanController.java | 111 +
src/main/java/com/ruoyi/production/pojo/ProductionOrderBom.java | 63
src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java | 82
src/main/java/com/ruoyi/production/service/ProductionPlanService.java | 66
src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java | 20
src/main/java/com/ruoyi/production/service/impl/ProductionOrderBomServiceImpl.java | 20
src/main/resources/mapper/production/ProductWorkOrderMapper.xml | 10
src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java | 61
src/main/resources/mapper/production/ProductionProductInputMapper.xml | 85 -
src/main/java/com/ruoyi/production/controller/ProductionOrderBomController.java | 8
src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickRecordServiceImpl.java | 20
src/main/java/com/ruoyi/production/controller/ProductionOperationMainParamController.java | 18
src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java | 64
src/main/java/com/ruoyi/production/mapper/ProductionProductOutputMapper.java | 24
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 350 ----
src/main/java/com/ruoyi/production/controller/ProductionAccountController.java | 8
src/main/resources/mapper/production/ProductionOrderBomMapper.xml | 20
src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java | 8
src/main/java/com/ruoyi/production/mapper/ProductionOrderBomMapper.java | 18
src/main/resources/mapper/production/ProductWorkOrderFileMapper.xml | 2
src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java | 20
src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java | 18
src/main/resources/mapper/production/ProductProcessRouteItemMapper.xml | 4
src/main/resources/mapper/production/ProductStructureMapper.xml | 6
src/main/resources/mapper/production/ProductionProductMainMapper.xml | 128 -
src/main/java/com/ruoyi/production/mapper/ProductionOrderPickMapper.java | 18
src/main/resources/mapper/production/ProductProcessRouteMapper.xml | 4
src/main/java/com/ruoyi/production/mapper/ProductionAccountMapper.java | 18
src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java | 57
src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java | 8
src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml | 6
src/main/java/com/ruoyi/production/pojo/ProductionBomStructure.java | 63
src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingServiceImpl.java | 20
src/main/java/com/ruoyi/production/controller/ProductionProductInputController.java | 25
src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java | 20
src/main/java/com/ruoyi/production/service/ProductionProductMainService.java | 20
src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingOperationParamMapper.java | 18
src/main/java/com/ruoyi/production/service/impl/ProductionOperationMainParamServiceImpl.java | 20
src/main/resources/mapper/production/ProductOrderMaterialMapper.xml | 8
src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java | 558 +++++++
src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java | 20
src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java | 8
src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java | 8
src/main/resources/mapper/production/ProductionAccountMapper.xml | 24
src/main/java/com/ruoyi/production/service/ProductionProductInputService.java | 13
src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java | 20
src/main/resources/mapper/production/ProcessRouteItemMapper.xml | 4
src/main/java/com/ruoyi/production/pojo/ProductionOrderPickRecord.java | 78 +
src/main/resources/mapper/production/ProductionOrderRoutingOperationParamMapper.xml | 29
src/main/java/com/ruoyi/production/pojo/ProductionAccount.java | 79 +
src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java | 34
src/main/java/com/ruoyi/production/service/ProductionProductOutputService.java | 13
src/main/java/com/ruoyi/production/mapper/ProductionOrderMapper.java | 18
src/main/java/com/ruoyi/production/pojo/ProductionOperationMainParam.java | 96 +
src/main/java/com/ruoyi/production/pojo/ProductionOrderRouting.java | 64
src/main/resources/mapper/production/ProductionOperationTaskMapper.xml | 24
src/main/resources/mapper/production/ProductionOrderPickMapper.xml | 19
src/main/java/com/ruoyi/production/service/ProductionAccountService.java | 16
src/main/java/com/ruoyi/production/pojo/ProductionOrderPick.java | 62
src/main/java/com/ruoyi/production/service/ProductionOperationTaskService.java | 16
src/main/resources/mapper/production/ProductionPlanMapper.xml | 24
src/main/java/com/ruoyi/production/controller/ProductionOrderPickRecordController.java | 8
src/main/resources/mapper/production/ProductionOrderPickRecordMapper.xml | 24
src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java | 70
src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingOperationMapper.java | 18
src/main/resources/mapper/production/ProductionOperationMainParamMapper.xml | 30
src/main/resources/mapper/production/ProductionOrderRoutingMapper.xml | 20
src/main/resources/mapper/production/ProductionProductOutputMapper.xml | 69
src/main/java/com/ruoyi/production/pojo/ProductionPlan.java | 79 +
src/main/java/com/ruoyi/production/service/ProductionBomStructureService.java | 16
src/main/java/com/ruoyi/production/service/ProductionOrderPickService.java | 16
src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml | 6
src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationController.java | 18
src/main/resources/mapper/production/ProductBomMapper.xml | 6
src/main/resources/mapper/production/ProductionOrderMapper.xml | 24
/dev/null | 182 --
src/main/java/com/ruoyi/production/service/ProductionOrderRoutingOperationService.java | 16
src/main/java/com/ruoyi/production/mapper/ProductionOrderPickRecordMapper.java | 18
src/main/java/com/ruoyi/production/pojo/ProductionOrder.java | 77 +
src/main/java/com/ruoyi/production/service/ProductionOperationMainParamService.java | 16
src/main/java/com/ruoyi/production/mapper/ProductionProductInputMapper.java | 22
src/main/java/com/ruoyi/production/mapper/ProductionOperationTaskMapper.java | 18
src/main/java/com/ruoyi/production/controller/ProductionProductOutputController.java | 27
src/main/resources/mapper/production/ProductionBomStructureMapper.xml | 20
108 files changed, 3,149 insertions(+), 1,112 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
new file mode 100644
index 0000000..78802c1
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
@@ -0,0 +1,61 @@
+package com.ruoyi.production.bean.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.production.pojo.ProductionPlan;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ProductionPlanDto extends ProductionPlan {
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ @ApiModelProperty("鐗╂枡缂栫爜")
+ @Excel(name = "鐗╂枡缂栫爜")
+ private String materialCode;
+
+ /**
+ * 浜у搧鍚嶇О
+ */
+ @ApiModelProperty("浜у搧鍚嶇О")
+ @Excel(name = "浜у搧鍚嶇О")
+ private String productName;
+
+ /**
+ * 浜у搧瑙勬牸
+ */
+ @ApiModelProperty("浜у搧瑙勬牸")
+ @Excel(name = "浜у搧瑙勬牸")
+ private String model;
+
+ @ApiModelProperty("浜у搧鍗曚綅")
+ @Excel(name = "浜у搧鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty(value = "鐢熶骇璁″垝id闆嗗悎")
+ private List<Long> ids;
+
+ @ApiModelProperty(value = "涓嬪彂鏁伴噺")
+ private BigDecimal totalAssignedQuantity;
+
+ @ApiModelProperty(value = "璁″垝瀹屾垚鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate planCompleteTime;
+
+ /**
+ * 鍏宠仈鐗╂枡淇℃伅琛�
+ */
+ @ApiModelProperty("鍏宠仈鐗╂枡淇℃伅琛↖D")
+ private Long productMaterialId;
+
+}
diff --git a/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanImportDto.java b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanImportDto.java
new file mode 100644
index 0000000..d531eac
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanImportDto.java
@@ -0,0 +1,177 @@
+package com.ruoyi.production.bean.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <br>
+ * 閿�鍞敓浜ч渶姹� Excel瀵煎叆瀵煎嚭DTO
+ * </br>
+ *
+ * @author deslrey
+ * @version 1.0
+ * @since 2026/03/11 11:28
+ */
+@Data
+@ApiModel("閿�鍞敓浜ч渶姹� Excel瀵煎叆瀵煎嚭DTO")
+public class ProductionPlanImportDto {
+ /**
+ * 鐢宠鍗曠紪鍙�
+ */
+ @ApiModelProperty("鐢宠鍗曠紪鍙�")
+ @Excel(name = "鐢宠鍗曠紪鍙�")
+ private String applyNo;
+
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ @ApiModelProperty("瀹㈡埛鍚嶇О")
+ @Excel(name = "瀹㈡埛鍚嶇О")
+ private String customerName;
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ @ApiModelProperty("鐗╂枡缂栫爜")
+ @Excel(name = "鐗╂枡缂栫爜")
+ private String materialCode;
+
+ /**
+ * 浜у搧鍚嶇О
+ */
+ @ApiModelProperty("浜у搧鍚嶇О")
+ @Excel(name = "浜у搧鍚嶇О")
+ private String productName;
+
+ /**
+ * 浜у搧瑙勬牸
+ */
+ @ApiModelProperty("浜у搧瑙勬牸")
+ @Excel(name = "浜у搧瑙勬牸")
+ private String productSpec;
+
+ /**
+ * 闀�
+ */
+ @ApiModelProperty("闀�")
+ @Excel(name = "闀�(mm)")
+ private Integer length;
+
+ /**
+ * 瀹�
+ */
+ @ApiModelProperty("瀹�")
+ @Excel(name = "瀹�(mm)")
+ private Integer width;
+
+ /**
+ * 楂�
+ */
+ @ApiModelProperty("楂�")
+ @Excel(name = "楂�(mm)")
+ private Integer height;
+
+ /**
+ * 鍧楁暟
+ */
+ @ApiModelProperty("鍧楁暟")
+ @Excel(name = "鍧楁暟")
+ private Integer quantity;
+
+ /**
+ * 鏂规暟
+ */
+ @ApiModelProperty("鏂规暟")
+ @Excel(name = "鏂规暟")
+ private BigDecimal volume;
+
+ /**
+ * 寮哄害
+ */
+ @ApiModelProperty("寮哄害")
+ @Excel(name = "寮哄害")
+ private String strength;
+
+ /**
+ * 寮�濮嬫棩鏈�
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @ApiModelProperty("寮�濮嬫棩鏈�")
+ @Excel(name = "寮�濮嬫棩鏈�", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date startDate;
+
+ /**
+ * 缁撴潫鏃ユ湡
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @ApiModelProperty("缁撴潫鏃ユ湡")
+ @Excel(name = "缁撴潫鏃ユ湡", width = 20, dateFormat = "yyyy-MM-dd")
+ private Date endDate;
+
+ /**
+ * 鎻愪氦浜�
+ */
+ @ApiModelProperty("鎻愪氦浜�")
+ @Excel(name = "鎻愪氦浜�")
+ private String submitter;
+
+ /**
+ * 鎻愪氦浜虹粍缁�
+ */
+ @ApiModelProperty("鎻愪氦浜虹粍缁�")
+ @Excel(name = "鎻愪氦浜虹粍缁�")
+ private String submitOrg;
+
+ /**
+ * 澶囨敞1
+ */
+ @ApiModelProperty("澶囨敞1")
+ @Excel(name = "澶囨敞1")
+ private String remarkOne;
+
+ /**
+ * 澶囨敞2
+ */
+ @ApiModelProperty("澶囨敞2")
+ @Excel(name = "澶囨敞2")
+ private String remarkTwo;
+
+ /**
+ * 鍒涘缓浜�
+ */
+ @ApiModelProperty("鍒涘缓浜�")
+ @Excel(name = "鍒涘缓浜�", type = Excel.Type.EXPORT)
+ private String creatorName;
+
+ /**
+ * 淇敼浜�
+ */
+ @ApiModelProperty("淇敼浜�")
+ @Excel(name = "淇敼浜�", type = Excel.Type.EXPORT)
+ private String modifierName;
+
+ /**
+ * 鏁版嵁鍚屾绫诲瀷锛�1=鎵嬪姩 2=瀹氭椂浠诲姟
+ */
+ @ApiModelProperty("鏁版嵁鍚屾绫诲瀷锛�1=鎵嬪姩 2=瀹氭椂浠诲姟")
+ private Integer dataSyncType;
+
+ /**
+ * 鏁版嵁鏉ユ簮绫诲瀷锛�1=鍚屾 2=鏂板
+ */
+ @ApiModelProperty("鏁版嵁鏉ユ簮绫诲瀷锛�1=鍚屾 2=鏂板")
+ private Integer dataSourceType;
+
+ /**
+ * 涓嬪彂鏁伴噺
+ */
+ @ApiModelProperty("涓嬪彂鏁伴噺")
+ @Excel(name = "涓嬪彂鏁伴噺", type = Excel.Type.EXPORT)
+ private BigDecimal assignedQuantity;
+}
diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java
new file mode 100644
index 0000000..54326de
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java
@@ -0,0 +1,10 @@
+package com.ruoyi.production.bean.vo;
+
+import com.ruoyi.production.pojo.ProductionPlan;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ProductionPlanVo extends ProductionPlan {
+}
diff --git a/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
deleted file mode 100644
index 50ac4a8..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProcessRouteDto;
-import com.ruoyi.production.pojo.ProcessRoute;
-import com.ruoyi.production.pojo.ProcessRouteItem;
-import com.ruoyi.production.service.ProcessRouteItemService;
-import com.ruoyi.production.service.ProcessRouteService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-
-@RestController
-@RequestMapping("processRoute")
-@Api(tags = "宸ヨ壓璺嚎")
-public class ProcessRouteController {
-
- @Autowired
- private ProcessRouteService processRouteService;
-
- @GetMapping("page")
- @ApiOperation("鍒嗛〉鏌ヨ")
- public R page(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto) {
- return R.ok(processRouteService.pageProcessRouteDto(page, processRouteDto));
- }
-
- @ApiOperation("鏂板宸ヨ壓璺嚎")
- @PostMapping ()
- public R add(@RequestBody ProcessRoute processRoute) {
- return R.ok(processRouteService.saveProcessRoute(processRoute));
- }
- @ApiOperation("淇敼宸ヨ壓璺嚎")
- @PutMapping ()
- public R update(@RequestBody ProcessRoute processRoute) {
- return R.ok(processRouteService.updateById(processRoute));
- }
- @ApiOperation("鍒犻櫎宸ヨ壓璺嚎")
- @DeleteMapping("/{ids}")
- public R delete(@PathVariable("ids") Long[] ids) {
- return R.ok(processRouteService.batchDelete(Arrays.asList(ids)));
- }
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java b/src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java
deleted file mode 100644
index 6a4f8a7..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.ruoyi.framework.aspectj.lang.annotation.Log;
-import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProcessRouteItemDto;
-import com.ruoyi.production.pojo.ProcessRouteItem;
-import com.ruoyi.production.service.ProcessRouteItemService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-@RestController
-@RequestMapping("/processRouteItem")
-@Api(tags = "宸ヨ壓璺嚎鏄庣粏")
-public class ProcessRouteItemController {
- @Autowired
- private ProcessRouteItemService processRouteItemService;
-
- @GetMapping("list")
- public R listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) {
- return R.ok(processRouteItemService.listProcessRouteItemDto(processRouteItemDto));
- }
-
- @PostMapping ()
- @ApiOperation("鏂板淇敼")
- public R addOrUpdate(@RequestBody ProcessRouteItem processRouteItem) {
- return R.ok(processRouteItemService.saveOrUpdate(processRouteItem));
- }
-
- @PostMapping ("/sort")
- @ApiOperation("鎺掑簭")
- public R sort(@RequestBody ProcessRouteItem processRouteItem) {
- return R.ok(processRouteItemService.sort(processRouteItem));
- }
-
- @ApiOperation("鍒犻櫎宸ヨ壓璺嚎鏄庣粏")
- @DeleteMapping("/batchDelete/{id}")
- @Log(title = "鍒犻櫎", businessType = BusinessType.DELETE)
- public AjaxResult batchDelete(@PathVariable("id") Long id) {
- return AjaxResult.success(processRouteItemService.batchDelete(id));
- }
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductBomController.java b/src/main/java/com/ruoyi/production/controller/ProductBomController.java
deleted file mode 100644
index 3925b5c..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProductBomController.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-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.AjaxResult;
-import com.ruoyi.production.dto.BomImportDto;
-import com.ruoyi.production.dto.ProductBomDto;
-import com.ruoyi.production.pojo.ProcessRoute;
-import com.ruoyi.production.pojo.ProductBom;
-import com.ruoyi.production.pojo.ProductProcessRoute;
-import com.ruoyi.production.pojo.ProductStructure;
-import com.ruoyi.production.service.ProcessRouteService;
-import com.ruoyi.production.service.ProductBomService;
-import com.ruoyi.production.service.ProductProcessRouteService;
-import com.ruoyi.production.service.ProductStructureService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-/**
- * <p>
- * BOM涓昏〃 鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 09:59:27
- */
-@RestController
-@RequestMapping("/productBom")
-@Api(tags = "BOM")
-public class ProductBomController {
-
- @Autowired
- private ProductBomService productBomService;
-
- @Autowired
- private ProcessRouteService processRouteService;
-
- @Autowired
- private ProductProcessRouteService productProcessRouteService;
-
- @Autowired
- private ProductStructureService productStructureService;
-
- @GetMapping("/listPage")
- @Log(title = "BOM-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
- @ApiOperation("BOM-鍒嗛〉鏌ヨ")
- public AjaxResult listPage(Page page, ProductBomDto productBomDto) {
- IPage<ProductBomDto> listPage = productBomService.listPage(page, productBomDto);
- return AjaxResult.success(listPage);
- }
-
- @ApiModelProperty("鏂板BOM")
- @PostMapping("/add")
- @Log(title = "鏂板", businessType = BusinessType.INSERT)
- public AjaxResult add(@RequestBody ProductBom productBom) {
- return productBomService.add(productBom);
- }
-
- @ApiOperation("鏇存柊BOM")
- @Log(title = "淇敼", businessType = BusinessType.UPDATE)
- @PutMapping("/update")
- public AjaxResult update(@RequestBody ProductBom productBom) {
- return AjaxResult.success(productBomService.update(productBom));
- }
-
- @ApiOperation("鍒犻櫎BOM")
- @DeleteMapping("/batchDelete")
- @Log(title = "鍒犻櫎", businessType = BusinessType.DELETE)
- public AjaxResult batchDelete(@RequestBody List<Integer> ids) {
- List<ProcessRoute> list = processRouteService.list(Wrappers.<ProcessRoute>lambdaQuery().in(ProcessRoute::getBomId, ids));
- List<ProductProcessRoute> list2 = productProcessRouteService.list(Wrappers.<ProductProcessRoute>lambdaQuery().in(ProductProcessRoute::getBomId, ids));
- if (list.size() > 0 || list2.size() > 0) {
- return AjaxResult.error("璇OM宸茬粡瀛樺湪瀵瑰簲鐨勫伐鑹鸿矾绾�,鏃犳硶杩涜鍒犻櫎");
- }
- if (CollectionUtils.isEmpty(ids)) {
- return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
- }
- //鍒犻櫎bom瀛愯〃
- productStructureService.remove(Wrappers.<ProductStructure>lambdaQuery().in(ProductStructure::getBomId, ids));
- return AjaxResult.success(productBomService.removeBatchByIds(ids));
- }
-
- @GetMapping("/getByModel")
- @Log(title = "BOM-鏍规嵁閫夋嫨鐨勮鏍煎瀷鍙穒d鏌ヨ瀛樺湪鐨刡om", businessType = BusinessType.OTHER)
- @ApiOperation("BOM-鏍规嵁閫夋嫨鐨勮鏍煎瀷鍙穒d鏌ヨ瀛樺湪鐨刡om")
- public AjaxResult getByModel(Long productModelId) {
- List<ProductBom> productBoms = productBomService.list(Wrappers.<ProductBom>lambdaQuery().eq(ProductBom::getProductModelId, productModelId));
- return AjaxResult.success(productBoms);
- }
-
-
- @PostMapping("uploadBom")
- @PreAuthorize("@ss.hasPermi('product:bom:import')")
- @Log(title = "鏍规嵁Excel瀵煎叆BOM", businessType = BusinessType.IMPORT)
- @ApiOperation("鏍规嵁Excel瀵煎叆BOM")
- public AjaxResult uploadBom(@RequestParam("file") MultipartFile file) {
- return productBomService.uploadBom(file);
- }
-
- @PostMapping("exportBom")
- @PreAuthorize("@ss.hasPermi('product:bom:export')")
- @ApiOperation("瀵煎嚭BOM鏂囦欢")
- @Log(title = "瀵煎嚭BOM鏂囦欢", businessType = BusinessType.EXPORT)
- public void exportBom(HttpServletResponse response, @RequestParam Integer bomId) {
- productBomService.exportBom(response, bomId);
- }
-
- @GetMapping("/downloadTemplate")
- @Log(title = "涓嬭浇BOM瀵煎叆妯℃澘", businessType = BusinessType.EXPORT)
- @ApiOperation("涓嬭浇BOM瀵煎叆妯℃澘")
- public void importTemplate(HttpServletResponse response) {
- ExcelUtil<BomImportDto> excelUtil = new ExcelUtil<>(BomImportDto.class);
- excelUtil.importTemplateExcel(response, "BOM瀵煎叆妯℃澘");
- }
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
deleted file mode 100644
index 611a64a..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-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.dto.ProductOrderDto;
-import com.ruoyi.production.pojo.ProductOrder;
-import com.ruoyi.production.service.ProductOrderService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-@RequestMapping("productOrder")
-@RestController
-@Api(tags = "鐢熶骇璁㈠崟")
-public class ProductOrderController {
-
- @Autowired
- private ProductOrderService productOrderService;
-
-
- @ApiOperation("鍒嗛〉鏌ヨ")
- @GetMapping("page")
- public R page(ProductOrderDto productOrder, Page page) {
- return R.ok(productOrderService.pageProductOrder(page, productOrder));
- }
-
- @ApiOperation("缁戝畾宸ヨ壓璺嚎")
- @PostMapping("/bindingRoute")
- public R bindingRoute(@RequestBody ProductOrder productOrder) {
- return R.ok(productOrderService.bindingRoute(productOrder));
- }
-
- @ApiOperation("鏌ヨ瑙勬牸鍨嬪彿瀵瑰簲鐨勫伐鑹鸿矾绾�")
- @GetMapping("/listProcessRoute")
- public R listProcessRoute(Long productModelId) {
- return R.ok(productOrderService.listProcessRoute(productModelId));
- }
-
- /**
- * 瀵煎嚭鐢熶骇璁㈠崟
- */
- @Log(title = "鐢熶骇璁㈠崟", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, ProductOrderDto productOrderDto) {
- List<ProductOrderDto> list = productOrderService.pageProductOrder(new Page<>(1, -1), productOrderDto).getRecords();
- ExcelUtil<ProductOrderDto> util = new ExcelUtil<>(ProductOrderDto.class);
- util.exportExcel(response, list, "鐢熶骇璁㈠崟鏁版嵁");
- }
-
- @ApiOperation("鏌ヨ鐢熶骇璁㈠崟瀵瑰簲鐨凚OM")
- @GetMapping("/listProcessBom")
- public R listProcessBom(Long orderId) {
- return R.ok(productOrderService.listProcessBom(orderId));
- }
-
-
- @ApiOperation("鏂板鐢熶骇璁㈠崟")
- @PostMapping("addProductOrder")
- public R addProductOrder(@RequestBody ProductOrder productOrder) {
- return R.ok(productOrderService.addProductOrder(productOrder));
- }
-
- @ApiOperation("鍒犻櫎鐢熶骇璁㈠崟")
- @DeleteMapping("/{ids}")
- public R delete(@PathVariable("ids") Long[] ids) {
- return R.ok(productOrderService.delete(ids));
- }
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductOrderMaterialController.java b/src/main/java/com/ruoyi/production/controller/ProductOrderMaterialController.java
deleted file mode 100644
index 969c02f..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProductOrderMaterialController.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductOrderMaterialDto;
-import com.ruoyi.production.pojo.ProductOrderMaterial;
-import com.ruoyi.production.service.ProductOrderMaterialService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@AllArgsConstructor
-@RequestMapping("/productOrderMaterial")
-@Api(value = "ProductOrderMaterial", tags = "鐢熶骇璁㈠崟鐗╂枡琛�")
-public class ProductOrderMaterialController {
-
- private ProductOrderMaterialService productOrderMaterialservice;
-
- @GetMapping("/detailList")
- @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夌敓浜ц鍗曠墿鏂欒〃")
- public R listPage(Page<ProductOrderMaterial> page, ProductOrderMaterial productOrderMaterial) {
- IPage<ProductOrderMaterial> listPage = productOrderMaterialservice.listPage(page, productOrderMaterial);
- return R.ok(listPage);
- }
-
- @PostMapping("/add")
- @ApiOperation("鏂板鐢熶骇璁㈠崟鐗╂枡琛�")
- public R add(@RequestBody ProductOrderMaterial productOrderMaterial) {
- return R.ok(productOrderMaterialservice.save(productOrderMaterial));
- }
-
- @PostMapping("/update")
- @ApiOperation("淇敼鐢熶骇璁㈠崟鐗╂枡琛�")
- public R update(@RequestBody ProductOrderMaterial productOrderMaterial) {
- return R.ok(productOrderMaterialservice.updateById(productOrderMaterial));
- }
-
- @GetMapping("/list")
- @ApiOperation("棰嗘枡鍙拌处鍒楄〃")
- public R list(ProductOrderMaterialDto productOrderMaterialDto) {
- List<ProductOrderMaterialDto> productOrderMaterialDtos = productOrderMaterialservice.pickMaterial(productOrderMaterialDto);
- return R.ok(productOrderMaterialDtos);
- }
-
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessController.java b/src/main/java/com/ruoyi/production/controller/ProductProcessController.java
deleted file mode 100644
index c25f2cc..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessController.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.basic.pojo.Customer;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.device.pojo.DeviceRepair;
-import com.ruoyi.framework.aspectj.lang.annotation.Log;
-import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.framework.web.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.oA.pojo.OaProject;
-import com.ruoyi.production.dto.ProductProcessDto;
-import com.ruoyi.production.pojo.ProductProcess;
-import com.ruoyi.production.service.impl.ProductProcessServiceImpl;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-@RestController
-@Api(tags = "宸ュ簭")
-@RequestMapping("/productProcess")
-public class ProductProcessController extends BaseController {
-
-
- @Autowired
- private ProductProcessServiceImpl productProcessService;
-
- @GetMapping("/listPage")
- @Log(title = "宸ュ簭-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
- @ApiOperation("宸ュ簭-鍒嗛〉鏌ヨ")
- public AjaxResult listPage(Page page, ProductProcessDto productProcessDto) {
- IPage<ProductProcessDto> listPage = productProcessService.listPage(page, productProcessDto);
- return AjaxResult.success(listPage);
- }
-
- @ApiModelProperty("鏂板宸ュ簭")
- @PostMapping()
- @Log(title = "鏂板", businessType = BusinessType.INSERT)
- public AjaxResult add( @RequestBody ProductProcessDto productProcessDto) {
- return productProcessService.add(productProcessDto);
- }
-
- @ApiOperation("鏇存柊宸ュ簭")
- @Log(title = "淇敼", businessType = BusinessType.UPDATE)
- @PutMapping("/update")
- public AjaxResult update(@RequestBody ProductProcess productProcess) {
- return AjaxResult.success(productProcessService.updateById(productProcess));
- }
-
- @ApiOperation("鍒犻櫎宸ュ簭")
- @DeleteMapping("/batchDelete")
- @Log(title = "鍒犻櫎", businessType = BusinessType.DELETE)
- public AjaxResult batchDelete(@RequestBody List<Integer> ids) {
- return AjaxResult.success(productProcessService.batchDelete(ids));
- }
-
- @ApiOperation("鏌ヨ鎵�鏈夊伐搴�")
- @GetMapping("/list")
- public AjaxResult list() {
- return AjaxResult.success(productProcessService.list());
- }
-
- /**
- * 瀵煎叆宸ュ簭
- */
- @Log(title = "宸ュ簭", businessType = BusinessType.IMPORT)
- @PostMapping("/importData")
- public AjaxResult importData(MultipartFile file) throws Exception {
- return productProcessService.importData(file);
- }
-
- @PostMapping("/downloadTemplate")
- @Log(title = "宸ュ簭-涓嬭浇妯℃澘", businessType = BusinessType.EXPORT)
- public void downloadTemplate(HttpServletResponse response) {
- ExcelUtil<ProductProcess> util = new ExcelUtil<ProductProcess>(ProductProcess.class);
- util.importTemplateExcel(response, "宸ュ簭妯℃澘");
- }
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteItemController.java b/src/main/java/com/ruoyi/production/controller/ProductProcessRouteItemController.java
deleted file mode 100644
index 2d5231d..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteItemController.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductProcessRouteItemDto;
-import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
-import com.ruoyi.production.service.ProductProcessRouteItemService;
-import com.ruoyi.production.service.ProductProcessRouteService;
-import com.ruoyi.production.service.ProductWorkOrderService;
-import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
-import com.ruoyi.sales.mapper.SalesLedgerMapper;
-import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
-import com.ruoyi.sales.pojo.SalesLedger;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-@RequestMapping("/productProcessRoute")
-@RestController
-@AllArgsConstructor
-@Api(tags = "鐢熶骇宸ヨ壓璺嚎")
-public class ProductProcessRouteItemController {
-
-
- private ProductProcessRouteItemService productProcessRouteItemService;
- private ProductProcessRouteService productProcessRouteService;
-
- @GetMapping("list")
- @ApiOperation("鏍规嵁Id鏌ヨ宸ヨ壓璺嚎瀛愯〃")
- public R list(Long orderId) {
- return R.ok(productProcessRouteItemService.listItem(orderId));
- }
-
- @GetMapping("listMain")
- @ApiOperation("鏍规嵁Id鏌ヨ宸ヨ壓璺嚎涓昏〃")
- public R listMain(Long orderId) {
- return R.ok(productProcessRouteService.listMain(orderId));
- }
-
- @PostMapping("/addRouteItem")
- @ApiOperation("鏂板鐢熶骇璁㈠崟鐨勫伐鑹鸿矾绾胯鎯�")
- public R addRouteItem(@RequestBody ProductProcessRouteItem productProcessRouteItem) {
- return productProcessRouteItemService.addRouteItem(productProcessRouteItem);
- }
-
- @PostMapping("/updateRouteItem")
- @ApiOperation("淇敼鐢熶骇璁㈠崟鐨勫伐鑹鸿矾绾胯鎯�")
- public R updateRouteItem(@RequestBody ProductProcessRouteItem productProcessRouteItem) {
- return R.ok(productProcessRouteItemService.updateById(productProcessRouteItem));
- }
-
- @DeleteMapping("/deleteRouteItem/{id}")
- @ApiOperation("鍒犻櫎鐢熶骇宸ヨ壓璺嚎")
- public R deleteRouteItem(@PathVariable("id") Long id) {
- return productProcessRouteItemService.deleteRouteItem(id);
- }
-
- @PostMapping ("/sortRouteItem")
- @ApiOperation("鎺掑簭")
- public R sortRouteItem(@RequestBody ProductProcessRouteItem productProcessRouteItem) {
- return R.ok(productProcessRouteItemService.sortRouteItem(productProcessRouteItem));
- }
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductStructureController.java b/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
deleted file mode 100644
index 89ead6d..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.framework.aspectj.lang.annotation.Log;
-import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductProcessDto;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.pojo.ProductStructure;
-import com.ruoyi.production.service.ProductStructureService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-
-@RequestMapping("productStructure")
-@RestController
-@Api(tags = "BOM")
-public class ProductStructureController {
- @Autowired
- private ProductStructureService productStructureService;
-
-
- @ApiOperation("鏂板BOM瀛愰泦")
- @PostMapping()
- public R addOrUpdate(@RequestBody ProductStructureDto productStructureDto){
- return R.ok(productStructureService.addProductStructureDto(productStructureDto));
- }
-
- @ApiOperation("BOM鏌ョ湅瀛愰泦璇︽儏")
- @GetMapping("/listBybomId/{bomId}")
- public R listBybomId( @PathVariable("bomId") Integer bomId){
- return R.ok(productStructureService.listBybomId(bomId));
- }
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
deleted file mode 100644
index 029e457..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductWorkOrderDto;
-import com.ruoyi.production.pojo.ProductWorkOrder;
-import com.ruoyi.production.service.ProductWorkOrderService;
-import com.ruoyi.quality.pojo.QualityInspect;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-
-@RestController
-@AllArgsConstructor
-@RequestMapping("/productWorkOrder")
-public class ProductWorkOrderController {
-
- private ProductWorkOrderService productWorkOrderservice;
-
-
- /**
- * 浜у搧宸ュ崟瀹炰綋绫诲垎椤垫煡璇�
- */
- @ApiOperation("浜у搧宸ュ崟瀹炰綋绫诲垎椤垫煡璇�")
- @GetMapping("/page")
- public R page(Page<ProductWorkOrderDto> page, ProductWorkOrderDto productWorkOrder) {
- return R.ok(productWorkOrderservice.listPage(page, productWorkOrder));
- }
-
- /**
- * 浜у搧宸ュ崟鏇存柊
- */
- @ApiOperation("浜у搧宸ュ崟鏇存柊")
- @PostMapping ("/updateProductWorkOrder")
- public R updateProductWorkOrder(@RequestBody ProductWorkOrderDto productWorkOrderDto) {
- return R.ok(productWorkOrderservice.updateProductWorkOrder(productWorkOrderDto));
- }
-
- /**
- * pda鏍规嵁浜岀淮鐮佺殑宸ュ崟id鏌ヨ鏁版嵁
- */
- @ApiOperation("pda鏍规嵁浜岀淮鐮佺殑宸ュ崟id鏌ヨ鏁版嵁")
- @GetMapping("/getProductWorkOrderById")
- public R getProductWorkOrderById(Long id) {
- return R.ok(productWorkOrderservice.getById(id));
- }
-
- /**
- * 宸ュ崟娴佽浆鍗′笅杞�
- * @param response
- * @param productWorkOrder
- */
- @PostMapping("/down")
- public void down(HttpServletResponse response, @RequestBody ProductWorkOrder productWorkOrder) {
- productWorkOrderservice.down(response, productWorkOrder);
- }
-
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductWorkOrderFileController.java b/src/main/java/com/ruoyi/production/controller/ProductWorkOrderFileController.java
deleted file mode 100644
index 1f1b37e..0000000
--- a/src/main/java/com/ruoyi/production/controller/ProductWorkOrderFileController.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.production.pojo.ProductWorkOrderFile;
-import com.ruoyi.production.service.ProductWorkOrderFileService;
-import com.ruoyi.quality.pojo.QualityInspectFile;
-import com.ruoyi.quality.service.IQualityInspectFileService;
-import io.swagger.annotations.Api;
-import org.checkerframework.checker.units.qual.A;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * <p>
- * 鐢熶骇宸ュ崟闄勪欢琛� 鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-23 03:28:32
- */
-@Api(tags = "鐢熶骇宸ュ崟闄勪欢琛�")
-@RestController
-@RequestMapping("/productWorkOrderFile")
-public class ProductWorkOrderFileController {
-
- @Resource
- private ProductWorkOrderFileService productWorkOrderFileService;
-
-
- /**
- * 鏂板
- * @param productWorkOrderFile
- * @return
- */
- @PostMapping("/add")
- public AjaxResult add(@RequestBody ProductWorkOrderFile productWorkOrderFile) {
- return AjaxResult.success(productWorkOrderFileService.save(productWorkOrderFile));
- }
-
- /**
- * 鍒犻櫎
- * @param ids
- * @return
- */
- @DeleteMapping("/del")
- public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
- if(CollectionUtils.isEmpty(ids)){
- return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
- }
- //鍒犻櫎妫�楠岄檮浠�
- return AjaxResult.success(productWorkOrderFileService.removeBatchByIds(ids));
- }
-
- /**
- *鍒嗛〉鏌ヨ
- * @param page
- * @param productWorkOrderFile
- * @return
- */
- @GetMapping("/listPage")
- public AjaxResult listPage(Page page, ProductWorkOrderFile productWorkOrderFile) {
- return AjaxResult.success(productWorkOrderFileService.page(page, Wrappers.<ProductWorkOrderFile>lambdaQuery().eq(ProductWorkOrderFile::getWorkOrderId,productWorkOrderFile.getWorkOrderId())));
- }
-
-}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProductionAccountController.java
similarity index 64%
rename from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
rename to src/main/java/com/ruoyi/production/controller/ProductionAccountController.java
index bb1b010..9c34f2a 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionAccountController.java
@@ -5,14 +5,14 @@
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鐢熶骇鏍哥畻琛� 鍓嶇鎺у埗鍣�
* </p>
*
* @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
+ * @since 2026-04-21 03:55:52
*/
@RestController
-@RequestMapping("/productProcessRoute")
-public class ProductProcessRouteController {
+@RequestMapping("/productionAccount")
+public class ProductionAccountController {
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java
similarity index 61%
copy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
copy to src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java
index bb1b010..da98401 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java
@@ -5,14 +5,14 @@
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鐢熶骇璁㈠崟BOM浜у搧缁撴瀯 鍓嶇鎺у埗鍣�
* </p>
*
* @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
+ * @since 2026-04-21 03:55:52
*/
@RestController
-@RequestMapping("/productProcessRoute")
-public class ProductProcessRouteController {
+@RequestMapping("/productionBomStructure")
+public class ProductionBomStructureController {
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOperationMainParamController.java b/src/main/java/com/ruoyi/production/controller/ProductionOperationMainParamController.java
new file mode 100644
index 0000000..e3dac6a
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOperationMainParamController.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟鎶ュ伐鍙傛暟琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@RestController
+@RequestMapping("/productionOperationMainParam")
+public class ProductionOperationMainParamController {
+
+}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java
similarity index 62%
copy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
copy to src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java
index bb1b010..1c9922f 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java
@@ -5,14 +5,14 @@
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鐢熶骇宸ュ崟琛� 鍓嶇鎺у埗鍣�
* </p>
*
* @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
+ * @since 2026-04-21 03:55:52
*/
@RestController
-@RequestMapping("/productProcessRoute")
-public class ProductProcessRouteController {
+@RequestMapping("/productionOperationTask")
+public class ProductionOperationTaskController {
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderBomController.java
similarity index 63%
copy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
copy to src/main/java/com/ruoyi/production/controller/ProductionOrderBomController.java
index bb1b010..ee0ecdc 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderBomController.java
@@ -5,14 +5,14 @@
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鐢熶骇璁㈠崟BOM 鍓嶇鎺у埗鍣�
* </p>
*
* @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
+ * @since 2026-04-21 03:55:52
*/
@RestController
-@RequestMapping("/productProcessRoute")
-public class ProductProcessRouteController {
+@RequestMapping("/productionOrderBom")
+public class ProductionOrderBomController {
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
similarity index 64%
copy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
copy to src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
index bb1b010..00dcabe 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
@@ -5,14 +5,14 @@
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鐢熶骇璁㈠崟琛� 鍓嶇鎺у埗鍣�
* </p>
*
* @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
+ * @since 2026-04-21 03:55:52
*/
@RestController
-@RequestMapping("/productProcessRoute")
-public class ProductProcessRouteController {
+@RequestMapping("/productionOrder")
+public class ProductionOrderController {
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java
similarity index 62%
copy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
copy to src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java
index bb1b010..7f48ba7 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java
@@ -5,14 +5,14 @@
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 璁㈠崟棰嗘枡绾胯竟浠� 鍓嶇鎺у埗鍣�
* </p>
*
* @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
+ * @since 2026-04-21 03:55:52
*/
@RestController
-@RequestMapping("/productProcessRoute")
-public class ProductProcessRouteController {
+@RequestMapping("/productionOrderPick")
+public class ProductionOrderPickController {
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderPickRecordController.java
similarity index 60%
copy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
copy to src/main/java/com/ruoyi/production/controller/ProductionOrderPickRecordController.java
index bb1b010..a266c8e 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderPickRecordController.java
@@ -5,14 +5,14 @@
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 绾胯竟浠撳嚭鍏ュ簱璁板綍 鍓嶇鎺у埗鍣�
* </p>
*
* @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
+ * @since 2026-04-21 03:55:52
*/
@RestController
-@RequestMapping("/productProcessRoute")
-public class ProductProcessRouteController {
+@RequestMapping("/productionOrderPickRecord")
+public class ProductionOrderPickRecordController {
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java
similarity index 61%
copy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
copy to src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java
index bb1b010..5d76958 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java
@@ -5,14 +5,14 @@
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎琛� 鍓嶇鎺у埗鍣�
* </p>
*
* @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
+ * @since 2026-04-21 03:55:52
*/
@RestController
-@RequestMapping("/productProcessRoute")
-public class ProductProcessRouteController {
+@RequestMapping("/productionOrderRouting")
+public class ProductionOrderRoutingController {
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationController.java
new file mode 100644
index 0000000..d25de7b
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationController.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@RestController
+@RequestMapping("/productionOrderRoutingOperation")
+public class ProductionOrderRoutingOperationController {
+
+}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java
new file mode 100644
index 0000000..2828729
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@RestController
+@RequestMapping("/productionOrderRoutingOperationParam")
+public class ProductionOrderRoutingOperationParamController {
+
+}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionPlanController.java b/src/main/java/com/ruoyi/production/controller/ProductionPlanController.java
new file mode 100644
index 0000000..df8a6fd
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/controller/ProductionPlanController.java
@@ -0,0 +1,111 @@
+package com.ruoyi.production.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.ProductionPlanDto;
+import com.ruoyi.production.bean.dto.ProductionPlanImportDto;
+import com.ruoyi.production.bean.vo.ProductionPlanVo;
+import com.ruoyi.production.service.ProductionPlanService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * <p>
+ * 鐢熶骇璁″垝琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 02:11:10
+ */
+@RestController
+@RequestMapping("/productionPlan")
+@RequiredArgsConstructor
+@Api(tags = "涓荤敓浜ц鍒�")
+public class ProductionPlanController {
+
+ private final ProductionPlanService productionPlanService;
+
+ @GetMapping("/listPage")
+ @ApiOperation("鑾峰彇鐢熶骇璁″垝鍒楄〃")
+ public R<IPage<ProductionPlanVo>> productionPlanListPage(Page<ProductionPlanDto> page, ProductionPlanDto productionPlanDto) {
+ return R.ok(productionPlanService.listPage(page, productionPlanDto));
+ }
+
+ @GetMapping("/loadProdData")
+ @ApiOperation("鎷夊彇閿�鍞敓浜ц鍒�")
+ @Log(title = "鎷夊彇閿�鍞敓浜ц鍒�", businessType = BusinessType.INSERT)
+ public R loadProdData() {
+ productionPlanService.loadProdData();
+ return R.ok();
+ }
+
+ @PostMapping("/combine")
+ @Log(title = "鍚堝苟鐢熶骇璁″垝", businessType = BusinessType.INSERT)
+ @ApiOperation("鍚堝苟鐢熶骇璁″垝")
+ public R combine(@RequestBody ProductionPlanDto productionPlanDto) {
+ if (productionPlanDto.getIds() == null || productionPlanDto.getIds().isEmpty()) {
+ return R.fail("璇烽�夋嫨瑕佷笅鍙戠殑鐢熶骇璁″垝");
+ }
+
+ if (productionPlanDto.getTotalAssignedQuantity() == null || productionPlanDto.getTotalAssignedQuantity().compareTo(BigDecimal.ZERO) <= 0) {
+ return R.fail("璇疯緭鍏ヤ笅鍙戞暟閲�");
+ }
+ return R.ok(productionPlanService.combine(productionPlanDto));
+ }
+
+ @PostMapping("")
+ @Log(title = "鍒涘缓鐢熶骇璁″垝", businessType = BusinessType.INSERT)
+ @ApiOperation("鍒涘缓鐢熶骇璁″垝")
+ public R add(@RequestBody ProductionPlanDto productionPlanDto) {
+ return R.ok(productionPlanService.add(productionPlanDto));
+ }
+
+ @PutMapping("")
+ @Log(title = "鏇存柊鐢熶骇璁″垝", businessType = BusinessType.UPDATE)
+ @ApiOperation("鏇存柊鐢熶骇璁″垝")
+ public R update(@RequestBody ProductionPlanDto productionPlanDto) {
+ return R.ok(productionPlanService.update(productionPlanDto));
+ }
+
+ @DeleteMapping("")
+ @Log(title = "鍒犻櫎鐢熶骇璁″垝", businessType = BusinessType.DELETE)
+ @ApiOperation("鍒犻櫎鐢熶骇璁″垝")
+ public R delete(@RequestBody List<Long> ids) {
+ return R.ok(productionPlanService.removeByIds(ids));
+ }
+
+ @PostMapping("/downloadTemplate")
+ @Log(title = "涓嬭浇涓荤敓浜ц鍒掑鍏ユā鏉�", businessType = BusinessType.EXPORT)
+ @ApiOperation("涓嬭浇涓荤敓浜ц鍒掑鍏ユā鏉�")
+ public void importTemplate(HttpServletResponse response) {
+ ExcelUtil<ProductionPlanImportDto> excelUtil = new ExcelUtil<>(ProductionPlanImportDto.class);
+ excelUtil.importTemplateExcel(response, "涓荤敓浜ц鍒掑鍏ユā鏉�");
+ }
+
+ @PostMapping("/import")
+ @ApiOperation("涓荤敓浜ц鍒掓暟鎹鍏�")
+ @Log(title = "涓荤敓浜ц鍒掓暟鎹鍏�", businessType = BusinessType.IMPORT)
+ public R importProdData(@RequestParam("file") MultipartFile file) {
+ productionPlanService.importProdData(file);
+ return R.ok("瀵煎叆鎴愬姛");
+ }
+
+ @PostMapping("/export")
+ @ApiOperation("涓荤敓浜ц鍒掓暟鎹鍑�")
+ @Log(title = "涓荤敓浜ц鍒掓暟鎹鍑�", businessType = BusinessType.EXPORT)
+ public void exportProdData(HttpServletResponse response, @RequestBody(required = false) List<Long> ids) {
+ productionPlanService.exportProdData(response, ids);
+ }
+
+}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductInputController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductInputController.java
index b4bf7dc..758e699 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductInputController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductInputController.java
@@ -1,25 +1,18 @@
package com.ruoyi.production.controller;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductionProductInputDto;
-import com.ruoyi.production.service.ProductionProductInputService;
-import io.swagger.annotations.Api;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-@RequestMapping("productionProductInput")
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐鎶曞叆琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@RestController
-@Api(value = "鐢熶骇鎶曞叆")
+@RequestMapping("/productionProductInput")
public class ProductionProductInputController {
- @Autowired
- private ProductionProductInputService productionProductInputService;
-
- @GetMapping("listPage")
- public R page(Page<ProductionProductInputDto> page, ProductionProductInputDto productionProductInputDto) {
- return R.ok(productionProductInputService.listPageProductionProductInputDto(page, productionProductInputDto));
- }
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
index e4a0813..6b755bc 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -1,66 +1,18 @@
package com.ruoyi.production.controller;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductProcessRouteItemDto;
-import com.ruoyi.production.dto.ProductionProductMainDto;
-import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
-import com.ruoyi.production.service.ProductionProductMainService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
-import java.util.List;
-
-@RequestMapping("productionProductMain")
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@RestController
-@Api(value = "鐢熶骇鎶ュ伐")
+@RequestMapping("/productionProductMain")
public class ProductionProductMainController {
- @Autowired
- private ProductionProductMainService productionProductMainService;
-
- /**
- * 鎶ュ伐鏌ヨ
- * @param page
- * @param productionProductMainDto
- * @return
- */
- @GetMapping("listPage")
- public R page(Page<ProductionProductMainDto> page, ProductionProductMainDto productionProductMainDto) {
- return R.ok(productionProductMainService.listPageProductionProductMainDto(page, productionProductMainDto));
- }
-
- /**
- * 鎶ュ伐鏂板鏇存柊
- * @param productionProductMainDto
- * @return
- */
- @PostMapping("addProductMain")
- public R addProductMain(@RequestBody ProductionProductMainDto productionProductMainDto) {
- return R.ok(productionProductMainService.addProductMain(productionProductMainDto));
- }
-
- @ApiOperation("鍒犻櫎鎶ュ伐")
- @DeleteMapping("/delete")
- public R delete(@RequestBody ProductionProductMainDto productionProductMainDto) {
- return R.ok(productionProductMainService.removeProductMain(productionProductMainDto.getId()));
- }
-
-
- /**
- * 瀵煎嚭
- */
- @PostMapping("/export")
- public void export(HttpServletResponse response, ProductionProductMainDto productionProductMainDto) {
- List<ProductionProductMainDto> list;
- list = productionProductMainService.listPageProductionProductMainDto(new Page<>(1, -1), productionProductMainDto).getRecords();
- ExcelUtil<ProductionProductMainDto> util = new ExcelUtil<ProductionProductMainDto>(ProductionProductMainDto.class);
- util.exportExcel(response, list, "鐢熶骇鎶ュ伐鏁版嵁");
- }
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductOutputController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductOutputController.java
index ca9c1e8..64963d1 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductOutputController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductOutputController.java
@@ -1,27 +1,18 @@
package com.ruoyi.production.controller;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductionProductInputDto;
-import com.ruoyi.production.dto.ProductionProductOutputDto;
-import com.ruoyi.production.service.ProductionProductInputService;
-import com.ruoyi.production.service.ProductionProductOutputService;
-import io.swagger.annotations.Api;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-@RequestMapping("productionProductOutput")
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐浜у嚭琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@RestController
-@Api(value = "鐢熶骇浜у嚭")
+@RequestMapping("/productionProductOutput")
public class ProductionProductOutputController {
- @Autowired
- private ProductionProductOutputService productionProductOutputService;
-
- @GetMapping("listPage")
- public R page(Page<ProductionProductOutputDto> page, ProductionProductOutputDto productionProductOutputDto) {
- return R.ok(productionProductOutputService.listPageProductionProductOutputDto(page, productionProductOutputDto));
- }
}
diff --git a/src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java b/src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java
deleted file mode 100644
index 02d36c8..0000000
--- a/src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.account.pojo.AccountExpense;
-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.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductOrderDto;
-import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
-import com.ruoyi.production.dto.UserProductionAccountingDto;
-import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
-import com.ruoyi.production.service.SalesLedgerProductionAccountingService;
-import com.ruoyi.production.service.impl.SalesLedgerProductionAccountingServiceImpl;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:43
- */
-@RestController
-@Api(tags = "鐢熶骇鏍哥畻")
-@RequestMapping("/salesLedger/productionAccounting")
-public class SalesLedgerProductionAccountingController extends BaseController {
-
- @Autowired
- private SalesLedgerProductionAccountingService salesLedgerProductionAccountingService;
-
- @GetMapping("/listPage")
- @ApiOperation("鐢熶骇鏍哥畻-鍒嗛〉鏌ヨ")
- @Log(title = "鐢熶骇鏍哥畻-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
- public AjaxResult listPage(Page page, SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto) {
- IPage<SalesLedgerProductionAccountingDto> list = salesLedgerProductionAccountingService.listPage(page, salesLedgerProductionAccountingDto);
- return AjaxResult.success(list);
- }
-
- /**
- * 瀵煎嚭
- */
- @PostMapping("/export")
- public void export(HttpServletResponse response, SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto) {
- List<SalesLedgerProductionAccountingDto> list;
- list = salesLedgerProductionAccountingService.listPage(new Page<>(1, -1), salesLedgerProductionAccountingDto).getRecords();
- ExcelUtil<SalesLedgerProductionAccountingDto> util = new ExcelUtil<SalesLedgerProductionAccountingDto>(SalesLedgerProductionAccountingDto.class);
- util.exportExcel(response, list, "鐢熶骇鏍哥畻鏁版嵁");
- }
-//----------------------------------------------------------------------------------------------------------------------------------------------------
- @GetMapping("/page")
- @ApiModelProperty("鏌ヨ宸ヤ汉鐢熶骇宸ヨ祫淇℃伅")
- public R pageProductionAccounting(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page){
- return R.ok(salesLedgerProductionAccountingService.pageProductionAccounting(salesLedgerProductionAccountingDto, page));
- }
-
- @GetMapping("/listProductionDetails")
- @ApiModelProperty("鏌ヨ宸ヤ汉鐢熶骇宸ヨ祫淇℃伅")
- public R listProductionDetails(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page){
- return R.ok(salesLedgerProductionAccountingService.listProductionDetails(salesLedgerProductionAccountingDto,page));
- }
-
- @GetMapping("getByUserId")
- @ApiModelProperty("鏌ヨ宸ヤ汉鐢熶骇宸ヨ祫淇℃伅")
- public R getByUserId(UserProductionAccountingDto userProductionAccountingDto){
- return R.ok(salesLedgerProductionAccountingService.getByUserId(userProductionAccountingDto));
- }
-}
diff --git a/src/main/java/com/ruoyi/production/controller/SalesLedgerSchedulingController.java b/src/main/java/com/ruoyi/production/controller/SalesLedgerSchedulingController.java
deleted file mode 100644
index 907cd44..0000000
--- a/src/main/java/com/ruoyi/production/controller/SalesLedgerSchedulingController.java
+++ /dev/null
@@ -1,207 +0,0 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-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.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.procurementrecord.dto.ProcurementDto;
-import com.ruoyi.production.dto.ProcessSchedulingDto;
-import com.ruoyi.production.dto.ProductionDispatchAddDto;
-import com.ruoyi.production.dto.SalesLedgerSchedulingDto;
-import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto;
-import com.ruoyi.production.mapper.SpeculativeTradingInfoMapper;
-import com.ruoyi.production.pojo.SpeculativeTradingInfo;
-import com.ruoyi.production.service.impl.SalesLedgerSchedulingServiceImpl;
-import com.ruoyi.sales.mapper.LossMapper;
-import com.ruoyi.sales.pojo.Loss;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:43
- */
-@RestController
-@Api(tags = "鐢熶骇璁㈠崟")
-@RequestMapping("/salesLedger/scheduling")
-@Deprecated // 鏍囪璇ョ被宸插純鐢�
-public class SalesLedgerSchedulingController extends BaseController {
-
- @Autowired
- private SalesLedgerSchedulingServiceImpl salesLedgerSchedulingService;
-
-
- @Autowired
- private SpeculativeTradingInfoMapper speculativeTradingInfoMapper;
-
- @Autowired
- private LossMapper lossMapper;
-
- @GetMapping("/loss")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇娲惧伐-鎹熻�楃巼", businessType = BusinessType.OTHER)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇娲惧伐-鎹熻�楃巼")
- public AjaxResult loss() {
- return AjaxResult.success(lossMapper.selectOne(new LambdaQueryWrapper<Loss>().last("limit 1")));
- }
-
- @PostMapping("/addLoss")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇娲惧伐-娣诲姞鎹熻�楃巼", businessType = BusinessType.INSERT)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇娲惧伐-娣诲姞鎹熻�楃巼")
- public AjaxResult addLoss(@RequestBody Loss loss) {
- lossMapper.insert(loss);
- return AjaxResult.success("娣诲姞鎹熻�楃巼鎴愬姛");
- }
-
- @PostMapping("/updateLoss")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇娲惧伐-淇敼鎹熻�楃巼", businessType = BusinessType.UPDATE)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇娲惧伐-淇敼鎹熻�楃巼")
- public AjaxResult updateLoss(@RequestBody Loss loss) {
- lossMapper.updateById(loss);
- return AjaxResult.success("淇敼鎹熻�楃巼鎴愬姛");
- }
-
- @GetMapping("/list")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇娲惧伐-鐐掓満淇℃伅", businessType = BusinessType.OTHER)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇娲惧伐-鐐掓満淇℃伅")
- public AjaxResult list() {
- List<SpeculativeTradingInfo> result = speculativeTradingInfoMapper.selectList(null);
- result.forEach(item -> {
- item.setCurrentWorkLoad(salesLedgerSchedulingService.getSchedulingNumBySpeculativeTradingName(item.getName()).divide(new BigDecimal(1000),2, RoundingMode.CEILING));
- item.setVacant(item.getWorkLoad().subtract(item.getCurrentWorkLoad()).setScale(2, RoundingMode.HALF_UP)); //淇濈暀涓や綅灏忔暟
- });
- return AjaxResult.success(result);
- }
-
- @PostMapping("/addSpeculatTrading")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇娲惧伐-娣诲姞鐐掓満淇℃伅", businessType = BusinessType.INSERT)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇娲惧伐-娣诲姞鐐掓満淇℃伅")
- public AjaxResult addSpeculatTrading(@RequestBody List<SpeculativeTradingInfo> speculativeTradingInfo) {
- if(CollectionUtils.isEmpty(speculativeTradingInfo)) return AjaxResult.error("鏁版嵁缁勪笉鑳戒负绌�");
- speculativeTradingInfo.forEach(item -> {
- speculativeTradingInfoMapper.insert(item);
- });
- return AjaxResult.success("娣诲姞鐐掓満淇℃伅鎴愬姛");
- }
-
- @PostMapping("/updateSpeculatTrading")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇娲惧伐-淇敼鐐掓満淇℃伅", businessType = BusinessType.UPDATE)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇娲惧伐-淇敼鐐掓満淇℃伅")
- public AjaxResult updateSpeculatTrading(@RequestBody List<SpeculativeTradingInfo> speculativeTradingInfo) {
- if(CollectionUtils.isEmpty(speculativeTradingInfo)) return AjaxResult.error("鏁版嵁缁勪笉鑳戒负绌�");
- speculativeTradingInfo.forEach(item -> {
- speculativeTradingInfoMapper.updateById(item);
- });
- return AjaxResult.success("淇敼鐐掓満淇℃伅鎴愬姛");
- }
-
-
- @GetMapping("/listPage")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇璁㈠崟-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇璁㈠崟-鍒嗛〉鏌ヨ")
- public AjaxResult listPage(Page page, SalesLedgerSchedulingDto salesLedgerSchedulingDto) {
- IPage<SalesLedgerSchedulingDto> result = salesLedgerSchedulingService.listPage(page,salesLedgerSchedulingDto);
- return AjaxResult.success(result);
- }
-
- /**
- * 瀵煎嚭
- * @param response
- */
- @PostMapping("/export")
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇璁㈠崟-瀵煎嚭")
- public void export(HttpServletResponse response) {
- salesLedgerSchedulingService.export(response);
- }
-
-
- /**
- * 瀵煎嚭
- * @param response
- */
- @PostMapping("/exportOne")
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇娲惧伐-瀵煎嚭")
- public void exportOne(HttpServletResponse response) {
- salesLedgerSchedulingService.exportOne(response);
- }
-
- @PostMapping("/productionDispatch")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇璁㈠崟-鐢熶骇娲惧伐", businessType = BusinessType.INSERT)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇璁㈠崟-鐢熶骇娲惧伐")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult productionDispatch(@RequestBody ProductionDispatchAddDto productionDispatchAddDto) {
- List<ProductionDispatchAddDto> productionDispatchAddDtoList = new ArrayList<>();
- productionDispatchAddDtoList.add(productionDispatchAddDto);
- String result = salesLedgerSchedulingService.productionDispatch(productionDispatchAddDtoList);
- return AjaxResult.success(result);
- }
-
- @PostMapping("/productionDispatchList")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇璁㈠崟-鑷姩娲惧伐", businessType = BusinessType.INSERT)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇璁㈠崟-鑷姩娲惧伐")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult productionDispatchList(@RequestBody List<ProductionDispatchAddDto> productionDispatchAddDto) {
- String result = salesLedgerSchedulingService.productionDispatch(productionDispatchAddDto);
- return AjaxResult.success(result);
- }
-
- @GetMapping("/listPageProcess")
- @Log(title = "鐢熶骇绠$悊-宸ュ簭鎺掍骇-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
- @ApiOperation("鐢熶骇绠$悊-宸ュ簭鎺掍骇-鍒嗛〉鏌ヨ")
- public AjaxResult listPageProcess(Page page, SalesLedgerSchedulingProcessDto salesLedgerSchedulingDto) {
- IPage<SalesLedgerSchedulingProcessDto> result = salesLedgerSchedulingService.listPageProcess(page,salesLedgerSchedulingDto);
- return AjaxResult.success(result);
- }
-
- /**
- * 瀵煎嚭
- * @param response
- */
- @PostMapping("/exportTwo")
- @ApiOperation("鐢熶骇绠$悊-宸ュ簭鎺掍骇-瀵煎嚭")
- public void exportTwo(HttpServletResponse response) {
- Page page = new Page(-1,-1);
- SalesLedgerSchedulingProcessDto salesLedgerSchedulingDto = new SalesLedgerSchedulingProcessDto();
- IPage<SalesLedgerSchedulingProcessDto> result = salesLedgerSchedulingService.listPageProcess(page,salesLedgerSchedulingDto);
- result.getRecords().forEach(item -> {
- item.setStatusName(item.getStatus().toString());
- });
- ExcelUtil<SalesLedgerSchedulingProcessDto> util = new ExcelUtil<>(SalesLedgerSchedulingProcessDto.class);
- util.exportExcel(response, result.getRecords(), "宸ュ簭鎺掍骇");
- }
-
-
- @DeleteMapping("/productionDispatchDelete")
- @Log(title = "鐢熶骇绠$悊-宸ュ簭鎺掍骇-鍙栨秷鎺掍骇", businessType = BusinessType.DELETE)
- @ApiOperation("鐢熶骇绠$悊-宸ュ簭鎺掍骇-鍙栨秷鎺掍骇")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult productionDispatchDelete(@RequestBody List<Long> ids) {
- int result = salesLedgerSchedulingService.productionDispatchDelete(ids);
- return AjaxResult.success(result);
- }
-
-
- @PostMapping("/processScheduling")
- @Log(title = "鐢熶骇绠$悊-宸ュ簭鎺掍骇", businessType = BusinessType.INSERT)
- @ApiOperation("鐢熶骇绠$悊-宸ュ簭鎺掍骇")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult processScheduling(@RequestBody List<ProcessSchedulingDto> processSchedulingDto) {
- int result = salesLedgerSchedulingService.processScheduling(processSchedulingDto);
- return AjaxResult.success(result);
- }
-
-
-}
diff --git a/src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java b/src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java
deleted file mode 100644
index bd3610c..0000000
--- a/src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java
+++ /dev/null
@@ -1,92 +0,0 @@
-//package com.ruoyi.production.controller;
-//
-//import com.baomidou.mybatisplus.core.metadata.IPage;
-//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-//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.controller.BaseController;
-//import com.ruoyi.framework.web.domain.AjaxResult;
-//import com.ruoyi.production.dto.ProcessSchedulingDto;
-//import com.ruoyi.production.dto.ProductionReportDto;
-//import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto;
-//import com.ruoyi.production.dto.SalesLedgerWorkDto;
-//import com.ruoyi.production.pojo.SalesLedgerWork;
-//import com.ruoyi.production.service.SalesLedgerWorkService;
-//import io.swagger.annotations.Api;
-//import io.swagger.annotations.ApiOperation;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.transaction.annotation.Transactional;
-//import org.springframework.web.bind.annotation.*;
-//
-//import javax.servlet.http.HttpServletResponse;
-//import java.util.List;
-//
-///**
-// * @author :yys
-// * @date : 2025/7/21 14:43
-// */
-//@RestController
-//@Api(tags = "鐢熶骇鎶ュ伐(鎺掍骇璁板綍)")
-//@RequestMapping("/salesLedger/work")
-//@Deprecated // 鏍囪璇ョ被宸插純鐢�
-//public class SalesLedgerWorkController extends BaseController {
-//
-//
-// @Autowired
-// private SalesLedgerWorkServiceImpl salesLedgerWorkService;
-//
-// @GetMapping("/listPage")
-// @Log(title = "鐢熶骇鎶ュ伐-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
-// @ApiOperation("鐢熶骇鎶ュ伐-鍒嗛〉鏌ヨ")
-// public AjaxResult listPage(Page page, SalesLedgerWorkDto salesLedgerWorkDto) {
-// IPage<SalesLedgerWorkDto> listPage = salesLedgerWorkService.listPage(page, salesLedgerWorkDto);
-// return AjaxResult.success(listPage);
-// }
-//
-// /**
-// * 瀵煎嚭
-// * @param response
-// */
-// @PostMapping("/export")
-// @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐-瀵煎嚭")
-// public void export(HttpServletResponse response) {
-// Page page = new Page(-1,-1);
-// SalesLedgerWorkDto salesLedgerSchedulingDto = new SalesLedgerWorkDto();
-// IPage<SalesLedgerWorkDto> result = salesLedgerWorkService.listPage(page,salesLedgerSchedulingDto);
-// result.getRecords().forEach(item -> {
-// item.setDaiNum(item.getFinishedNum().subtract(item.getSchedulingNum()));
-// item.setStatusName(item.getStatus().toString());
-// });
-// ExcelUtil<SalesLedgerWorkDto> util = new ExcelUtil<>(SalesLedgerWorkDto.class);
-// util.exportExcel(response, result.getRecords(), "宸ュ簭鎺掍骇");
-// }
-//
-// @GetMapping("/list")
-// @Log(title = "鐢熶骇鎶ュ伐-鏌ヨ", businessType = BusinessType.OTHER)
-// @ApiOperation("鐢熶骇鎶ュ伐-鏌ヨ")
-// public AjaxResult list(@RequestParam("id") Long id) {
-// List<ProductionReportDto> list = salesLedgerWorkService.getList(id);
-// return AjaxResult.success(list);
-// }
-//
-// @PostMapping("/productionReport")
-// @Log(title = "鐢熶骇绠$悊-鐢熶骇鎶ュ伐", businessType = BusinessType.INSERT)
-// @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐")
-// @Transactional(rollbackFor = Exception.class)
-// public AjaxResult productionReport(@RequestBody ProductionReportDto productionReportDto) {
-// int result = salesLedgerWorkService.productionReport(productionReportDto);
-// return AjaxResult.success(result);
-// }
-//
-//
-// @PostMapping("/productionReportUpdate")
-// @Log(title = "鐢熶骇绠$悊-鐢熶骇鎶ュ伐-淇敼", businessType = BusinessType.UPDATE)
-// @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐-淇敼")
-// @Transactional(rollbackFor = Exception.class)
-// public AjaxResult productionReportUpdate(@RequestBody ProductionReportDto productionReportDto) {
-// int result = salesLedgerWorkService.productionReportUpdate(productionReportDto);
-// return AjaxResult.success(result);
-// }
-//
-//}
diff --git a/src/main/java/com/ruoyi/production/dto/BomImportDto.java b/src/main/java/com/ruoyi/production/dto/BomImportDto.java
deleted file mode 100644
index 0cea81a..0000000
--- a/src/main/java/com/ruoyi/production/dto/BomImportDto.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-public class BomImportDto {
-
- @Excel(name = "鐖堕」浜у搧缂栧彿")
- private String parentCode;
-
- @Excel(name = "鐖堕」浜у搧鍚嶇О")
- private String parentName;
-
- @Excel(name = "鐖堕」浜у搧瑙勬牸")
- private String parentSpec;
-
- @Excel(name = "瀛愰」浜у搧缂栧彿")
- private String childCode;
-
- @Excel(name = "瀛愰」浜у搧鍚嶇О")
- private String childName;
-
- @Excel(name = "瀛愰」浜у搧瑙勬牸")
- private String childSpec;
-
- @Excel(name = "鍗曚綅鐢ㄩ噺")
- private BigDecimal unitQty;
-
- @Excel(name = "鎶曟枡宸ュ簭")
- private String process;
-
- @Excel(name = "澶囨敞")
- private String remark;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/DaiDto.java b/src/main/java/com/ruoyi/production/dto/DaiDto.java
deleted file mode 100644
index 86853cb..0000000
--- a/src/main/java/com/ruoyi/production/dto/DaiDto.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * @author :yys
- * @date : 2025/11/3 9:35
- */
-@Data
-public class DaiDto{
-
- @Excel(name = "寰呮帓鏁伴噺")
- private BigDecimal daiNum;
-
- @ApiModelProperty(value = "閿�鍞骇鍝両D")
- private Long salesLedgerProductId;
-
- @ApiModelProperty(value = "閿�鍞彴璐D")
- private Long salesLedgerId;
-
- /**
- * 閿�鍞悎鍚屽彿
- */
- @Excel(name = "閿�鍞悎鍚屽彿")
- @ApiModelProperty(value = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- /**
- * 瀹㈡埛鍚堝悓鍙�
- */
- @Excel(name = "瀹㈡埛鍚堝悓鍙�")
- @ApiModelProperty(value = "瀹㈡埛鍚堝悓鍙�")
- private String customerContractNo;
-
- /**
- * 椤圭洰鍚嶇О
- */
- @Excel(name = "椤圭洰鍚嶇О")
- @ApiModelProperty(value = "椤圭洰鍚嶇О")
- private String projectName;
-
- /**
- * 褰曞叆鏃ユ湡
- */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "褰曞叆鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @ApiModelProperty(value = "褰曞叆鏃ユ湡")
- private Date entryDate;
-
- @ApiModelProperty(value = "褰曞叆鏃ユ湡寮�濮�")
- private String entryDateStart;
-
- @ApiModelProperty(value = "褰曞叆鏃ユ湡缁撴潫")
- private String entryDateEnd;
-
- /**
- * 瀹㈡埛鍚嶇О
- */
- @Excel(name = "瀹㈡埛鍚嶇О")
- @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
- private String customerName;
-
-
- /**
- * 浜у搧澶х被
- */
- @Excel(name = "浜у搧澶х被")
- @ApiModelProperty(value = "浜у搧澶х被")
- private String productCategory;
-
- /**
- * 瑙勬牸鍨嬪彿
- */
- @Excel(name = "瑙勬牸鍨嬪彿")
- @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
- private String specificationModel;
-
- /**
- * 鍗曚綅
- */
- @Excel(name = "鍗曚綅")
- @ApiModelProperty(value = "鍗曚綅")
- private String unit;
-
- /**
- * 鏁伴噺
- */
- @Excel(name = "鏁伴噺")
- @ApiModelProperty(value = "鏁伴噺")
- private BigDecimal quantity;
-
- /**
- * 鎺掍骇鏁伴噺
- */
- @Excel(name = "鎺掍骇鏁伴噺")
- @ApiModelProperty(value = "鎺掍骇鏁伴噺")
- private BigDecimal schedulingNum;
-
- @ApiModelProperty(value = "绉熸埛ID")
- private Long tenantId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java b/src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java
deleted file mode 100644
index 232a00c..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.production.pojo.ProcessRoute;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@Data
-public class ProcessRouteDto extends ProcessRoute {
-
- private Long productId;
-
- private String productName;
-
- @ApiModelProperty("瑙勬牸")
- private String model;
-
- private String bomNo;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java b/src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java
deleted file mode 100644
index 705354c..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.production.pojo.ProcessRouteItem;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class ProcessRouteItemDto extends ProcessRouteItem {
-
- @ApiModelProperty(value = "宸ュ簭鍚嶇О")
- private String processName;
-
- @ApiModelProperty(value = "宸ヨ壓璺嚎鍚嶇О")
- private String routeName;
-
- @ApiModelProperty(value = "鐢熶骇鐐掓満")
- private String speculativeTradingName;
-
- @ApiModelProperty(value = "浜у搧鍚嶇О")
- private String productName;
-
- @ApiModelProperty(value = "鍗曚綅")
- private String unit;
-
- private Long productId;
-
-
- private String model;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java b/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
deleted file mode 100644
index 1143abd..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.ruoyi.production.dto;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
-/**
- * @author :yys
- * @date : 2025/7/22 9:19
- */
-@Data
-@ApiModel
-public class ProcessSchedulingDto {
-
- private Long id;
-
- /**
- * 鎺掍骇浜篿d
- */
- @ApiModelProperty(value = "鎺掍骇浜篿d")
- private Long schedulingUserId;
-
-
- /**
- * 鎺掍骇鏁伴噺
- */
- @ApiModelProperty(value = "鎺掍骇鏁伴噺")
- private BigDecimal schedulingNum;
-
- /**
- * 宸ユ椂瀹氶
- */
- @ApiModelProperty(value = "宸ユ椂瀹氶")
- private BigDecimal workHours;
-
- /**
- * 浜х嚎
- */
- @ApiModelProperty(value = "浜х嚎")
- private String productionLine;
-
- /**
- * 宸ュ簭
- */
- @ApiModelProperty(value = "宸ュ簭")
- private String process;
-
-
- /**
- * 鎺掍骇鏃ユ湡
- */
- @ApiModelProperty(value = "鎺掍骇鏃ユ湡")
- private String schedulingDate;
-
- /**
- * 澶囨敞
- */
- @ApiModelProperty(value = "澶囨敞")
- private String remark;
-
- /**
- * 鎹熻��
- */
- @ApiModelProperty(value = "鎹熻��")
- private String loss;
-
- /**
- * 鍙e懗鍒嗙被
- */
- @ApiModelProperty(value = "鍙e懗鍒嗙被")
- private String type;
-
- /**
- * 棰嗙敤
- */
- @ApiModelProperty(value = "棰嗙敤")
- private String receive;
-
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductBomDto.java b/src/main/java/com/ruoyi/production/dto/ProductBomDto.java
deleted file mode 100644
index ab695ca..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductBomDto.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.production.pojo.ProductBom;
-import lombok.Data;
-
-import java.util.List;
-
-//鍒嗛〉鏌ヨ鍥炴樉鏁版嵁
-@Data
-public class ProductBomDto extends ProductBom {
-
- //浜у搧鍚嶇О
- private String productName;
-
- //浜у搧瑙勬牸鍨嬪彿
- private String productModelName;
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductOrderDto.java b/src/main/java/com/ruoyi/production/dto/ProductOrderDto.java
deleted file mode 100644
index dc2185a..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductOrderDto.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import com.ruoyi.production.pojo.ProductOrder;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-
-@Data
-@ExcelIgnoreUnannotated
-public class ProductOrderDto extends ProductOrder {
-
- @ApiModelProperty(value = "閿�鍞悎鍚屽彿")
- @Excel(name = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- @ApiModelProperty(value = "椤圭洰鍚�")
- @Excel(name = "椤圭洰鍚�")
- private String projectName;
-
- @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
- @Excel(name = "瀹㈡埛鍚嶇О")
- private String customerName;
-
- @ApiModelProperty(value = "浜у搧鍚嶇О")
- @Excel(name = "浜у搧鍚嶇О")
- private String productCategory;
-
- @ApiModelProperty(value = "瑙勬牸")
- @Excel(name = "瑙勬牸")
- private String specificationModel;
-
- @ApiModelProperty(value = "宸ヨ壓璺嚎缂栧彿")
- @Excel(name = "宸ヨ壓璺嚎缂栧彿")
- private String processRouteCode;
-
- @ApiModelProperty(value = "瀹屾垚杩涘害")
- @Excel(name = "瀹屾垚杩涘害", suffix = "%")
- private BigDecimal completionStatus;
-
- @ApiModelProperty(value = "BOM缂栧彿")
- @Excel(name = "BOM缂栧彿")
- private String bomNo;
-
- @ApiModelProperty(value = "浜ゆ湡鍋忓樊")
- private Integer deliveryDaysDiff;
-
- @ApiModelProperty(value = "浜ゆ湡")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate deliveryDate;
-
- //鏄惁鍙戣揣(鍙拌处椤甸潰棰滆壊鎺у埗)
- private Boolean isFh;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductOrderMaterialDto.java b/src/main/java/com/ruoyi/production/dto/ProductOrderMaterialDto.java
deleted file mode 100644
index 57d7670..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductOrderMaterialDto.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.production.pojo.ProductOrderMaterial;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-public class ProductOrderMaterialDto extends ProductOrderMaterial {
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductProcessDto.java b/src/main/java/com/ruoyi/production/dto/ProductProcessDto.java
deleted file mode 100644
index 7383a82..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductProcessDto.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.production.pojo.ProductProcess;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-@ApiModel
-public class ProductProcessDto extends ProductProcess {
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductProcessRouteItemDto.java b/src/main/java/com/ruoyi/production/dto/ProductProcessRouteItemDto.java
deleted file mode 100644
index d6ec3f1..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductProcessRouteItemDto.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.production.pojo.ProcessRouteItem;
-import com.ruoyi.production.pojo.ProductProcessRouteItem;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class ProductProcessRouteItemDto extends ProductProcessRouteItem {
-
- @ApiModelProperty(value = "宸ュ簭鍚嶇О")
- private String processName;
-
- @ApiModelProperty(value = "浜у搧鍚嶇О")
- private String productCategory;
-
- @ApiModelProperty(value = "鍗曚綅")
- private String unit;
-
- private Long productId;
-
- private String productName;
-
- private String model;
-
- private Boolean isComplete;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductStructureDto.java b/src/main/java/com/ruoyi/production/dto/ProductStructureDto.java
deleted file mode 100644
index ec43eef..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductStructureDto.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.ruoyi.production.pojo.ProductStructure;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.List;
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class ProductStructureDto extends ProductStructure {
-
- @ApiModelProperty(value = "宸ヨ壓鍚嶇О")
- private String processName;
-
- @ApiModelProperty(value = "浜у搧鍚嶇О")
- private String productName;
-
- @ApiModelProperty(value = "浜у搧id")
- private Long productId;
-
- private String model;
-
- @TableField(exist = false)
- private String tempId;
-
- @TableField(exist = false)
- private String parentTempId;
-
- @TableField(exist = false)
- private List<ProductStructureDto> children;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java b/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
deleted file mode 100644
index 6e2ca95..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import com.ruoyi.production.pojo.ProductWorkOrder;
-import com.ruoyi.production.pojo.ProductWorkOrderFile;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-public class ProductWorkOrderDto extends ProductWorkOrder {
-
- //浜у搧鍚嶇О
- @ApiModelProperty(value = "浜у搧鍚嶇О")
- private String productName;
-
- //瑙勬牸
- @ApiModelProperty(value = "瑙勬牸")
- private String model;
-
- //宸ュ簭
- @ApiModelProperty(value = "宸ュ簭")
- private String processName;
-
- //鍗曚綅
- @ApiModelProperty(value = "鍗曚綅")
- private String unit;
-
-
- //鐢熶骇璁㈠崟鍙�
- @ApiModelProperty(value = "鐢熶骇璁㈠崟鍙�")
- private String productOrderNpsNo;
-
- @ApiModelProperty(value = "瀹屾垚杩涘害")
- private BigDecimal completionStatus;
-
- @ApiModelProperty(value = "鎶ュ簾鏁伴噺")
- private BigDecimal scrapQty;
-
- @ApiModelProperty(value = "宸ュ崟绫诲瀷 姝e父 /杩斿伐杩斾慨")
- private String workOrderType;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionDispatchAddDto.java b/src/main/java/com/ruoyi/production/dto/ProductionDispatchAddDto.java
deleted file mode 100644
index 67a6332..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductionDispatchAddDto.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-/**
- * @author :yys
- * @date : 2025/7/21 16:28
- */
-@Data
-@ApiModel
-public class ProductionDispatchAddDto {
-
- @ApiModelProperty(value = "閿�鍞彴璐D")
- private Long salesLedgerId;
-
- @ApiModelProperty(value = "閿�鍞骇鍝両D")
- private Long salesLedgerProductId;
-
- /**
- * 鎺掍骇鏁伴噺
- */
- @ApiModelProperty(value = "鎺掍骇鏁伴噺")
- private BigDecimal schedulingNum;
-
- /**
- * 鎺掍骇浜�
- */
- @ApiModelProperty(value = "鎺掍骇浜�")
- private Long schedulingUserId;
-
- /**
- * 鎺掍骇鏃ユ湡
- */
- @ApiModelProperty(value = "鎺掍骇鏃ユ湡")
- private String schedulingDate;
-
- /**
- * 鐢熶骇鐐掓満
- */
- private String speculativeTradingName;
- /**
- * 浜х嚎
- */
- @ApiModelProperty(value = "浜х嚎")
- private String productionLine;
-
- /**
- * 瑙勬牸鍨嬪彿
- */
- private String specificationModel;
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionProductInputDto.java b/src/main/java/com/ruoyi/production/dto/ProductionProductInputDto.java
deleted file mode 100644
index 13bb4a3..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductionProductInputDto.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.production.pojo.ProductionProductInput;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@Data
-public class ProductionProductInputDto extends ProductionProductInput {
- @ApiModelProperty(value = "鎶ュ伐鍗曞彿")
- private String productNo;
-
- @ApiModelProperty(value = "浜у搧鍨嬪彿")
- private String model;
-
- @ApiModelProperty(value = "浜у搧鍚嶇О")
- private String productName;
-
- @ApiModelProperty(value = "鍗曚綅")
- private String unit;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
deleted file mode 100644
index 9e5e121..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import com.ruoyi.production.pojo.ProductionProductMain;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-@Data
-@ExcelIgnoreUnannotated
-public class ProductionProductMainDto extends ProductionProductMain {
- @ApiModelProperty(value = "宸ュ崟缂栧彿")
- @Excel(name = "宸ュ崟缂栧彿")
- private String workOrderNo;
-
- @ApiModelProperty(value = "宸ュ崟鐘舵��")
- private String workOrderStatus;
-
- @ApiModelProperty(value = "鎶ュ伐浜哄憳鏄电О")
- @Excel(name = "鎶ュ伐浜�")
- private String nickName;
-
- @ApiModelProperty(value = "鎶ュ伐鏁伴噺")
- @Excel(name = "鎶ュ伐鏁伴噺")
- private BigDecimal quantity;
-
- @ApiModelProperty(value = "鎶ュ簾鏁伴噺")
- @Excel(name = "鎶ュ簾鏁伴噺")
- private BigDecimal scrapQty = BigDecimal.ZERO;
-
- //浜у搧鍚嶇О
- @Excel(name = "浜у搧鍚嶇О")
- private String productName;
-
- //浜у搧瑙勬牸鍨嬪彿
- @Excel(name = "浜у搧瑙勬牸鍨嬪彿")
- private String productModelName;
-
- //鍗曚綅
- @Excel(name = "鍗曚綅")
- private String unit;
-
- //閿�鍞悎鍚屽彿
- @Excel(name = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate schedulingDate;
- private String schedulingUserName;
- private String customerName;
- //宸ュ簭
- @Excel(name = "宸ュ簭")
- private String process;
- private BigDecimal workHours;
- private BigDecimal wages;
-
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionProductOutputDto.java b/src/main/java/com/ruoyi/production/dto/ProductionProductOutputDto.java
deleted file mode 100644
index f98cc80..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductionProductOutputDto.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.production.pojo.ProductionProductInput;
-import com.ruoyi.production.pojo.ProductionProductOutput;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@Data
-public class ProductionProductOutputDto extends ProductionProductOutput {
- @ApiModelProperty(value = "鎶ュ伐鍗曞彿")
- private String productNo;
-
- @ApiModelProperty(value = "浜у搧鍨嬪彿")
- private String model;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionReportDto.java b/src/main/java/com/ruoyi/production/dto/ProductionReportDto.java
deleted file mode 100644
index 727decb..0000000
--- a/src/main/java/com/ruoyi/production/dto/ProductionReportDto.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.ruoyi.production.dto;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-/**
- * @author :yys
- * @date : 2025/7/22 10:24
- */
-@Data
-@ApiModel
-public class ProductionReportDto {
-
- private Long id;
- /**
- * 鎺掍骇浜篿d
- */
- @ApiModelProperty(value = "鐢熶骇浜篿d")
- private Long schedulingUserId;
-
- /**
- * 鎺掍骇鏁伴噺
- */
- private BigDecimal schedulingNum;
-
- /**
- * 鐢熶骇鏁伴噺
- */
- @ApiModelProperty(value = "鐢熶骇鏁伴噺")
- private BigDecimal finishedNum;
-
- /**
- * 鐢熶骇鏃ユ湡
- */
- @ApiModelProperty(value = "鐢熶骇鏃ユ湡")
- private String schedulingDate;
-
-
- /**
- * 鍏ュ簱鍗曚环
- */
- @ApiModelProperty(value = "鍏ュ簱鍗曚环")
- private BigDecimal unitPrice;
-
- /**
- * 鍏ュ簱鎬讳环
- */
- @ApiModelProperty(value = "鍏ュ簱鎬讳环")
- private BigDecimal totalPrice;
-}
diff --git a/src/main/java/com/ruoyi/production/dto/SalesLedgerProductDto.java b/src/main/java/com/ruoyi/production/dto/SalesLedgerProductDto.java
deleted file mode 100644
index 33e758d..0000000
--- a/src/main/java/com/ruoyi/production/dto/SalesLedgerProductDto.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-/**
- * @author :yys
- * @date : 2025/7/22 9:35
- */
-@Data
-@ApiModel
-public class SalesLedgerProductDto {
-
- /**
- * 閿�鍞悎鍚屽彿
- */
- @Excel(name = "閿�鍞悎鍚屽彿")
- @ApiModelProperty(value = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- /**
- * 瀹㈡埛鍚堝悓鍙�
- */
- @Excel(name = "瀹㈡埛鍚堝悓鍙�")
- @ApiModelProperty(value = "瀹㈡埛鍚堝悓鍙�")
- private String customerContractNo;
-
- /**
- * 椤圭洰鍚嶇О
- */
- @Excel(name = "椤圭洰鍚嶇О")
- @ApiModelProperty(value = "椤圭洰鍚嶇О")
- private String projectName;
-
-
- /**
- * 瀹㈡埛鍚嶇О
- */
- @Excel(name = "瀹㈡埛鍚嶇О")
- @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
- private String customerName;
-
-
- /**
- * 浜у搧澶х被
- */
- @Excel(name = "浜у搧澶х被")
- @ApiModelProperty(value = "浜у搧澶х被")
- private String productCategory;
-
- /**
- * 瑙勬牸鍨嬪彿
- */
- @Excel(name = "瑙勬牸鍨嬪彿")
- @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
- private String specificationModel;
-
- /**
- * 鍗曚綅
- */
- @Excel(name = "鍗曚綅")
- @ApiModelProperty(value = "鍗曚綅")
- private String unit;
-
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/SalesLedgerProductionAccountingDto.java b/src/main/java/com/ruoyi/production/dto/SalesLedgerProductionAccountingDto.java
deleted file mode 100644
index 8cb4d91..0000000
--- a/src/main/java/com/ruoyi/production/dto/SalesLedgerProductionAccountingDto.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-
-/**
- * @author :yys
- * @date : 2025/7/22 13:55
- */
-@Data
-@ApiModel
-@ExcelIgnoreUnannotated
-public class SalesLedgerProductionAccountingDto extends SalesLedgerProductDto{
-
- /**
- * 鐢熶骇浜篿d
- */
- @ApiModelProperty(value = "鐢熶骇浜篿d")
- private Long schedulingUserId;
-
- /**
- * 鎺掍骇浜哄悕绉�
- */
- @ApiModelProperty(value = "鐢熶骇浜哄悕绉�")
- @Excel(name = "鐢熶骇浜�")
- private String schedulingUserName;
-
-
- /**
- * 宸ヨ祫
- */
- @ApiModelProperty(value = "宸ヨ祫")
- @Excel(name = "宸ヨ祫")
- private BigDecimal wages;
-
- /**
- * 鐢熶骇鏁伴噺
- */
- @ApiModelProperty(value = "鐢熶骇鏁伴噺")
- @Excel(name = "鐢熶骇鏁伴噺")
- private BigDecimal finishedNum;
-
- /**
- * 宸ユ椂瀹氶
- */
- @ApiModelProperty(value = "宸ユ椂瀹氶")
- @Excel(name = "宸ユ椂瀹氶")
- private BigDecimal workHours;
-
- /**
- * 宸ュ簭
- */
- @ApiModelProperty(value = "宸ュ簭")
- @Excel(name = "宸ュ簭")
- private String process;
- /**
- * 鎺掍骇鏃ユ湡
- */
- @ApiModelProperty(value = "鎺掍骇鏃ユ湡")
- @Excel(name = "鐢熶骇鏃ユ湡")
- private LocalDate schedulingDate;
-
- @ApiModelProperty(value = "寮�濮嬫椂闂�")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate entryDateStart;
- @ApiModelProperty(value = "缁撴潫鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate entryDateEnd;
-
-
- private BigDecimal outputNum;
-
- private String outputRate;
-
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate entryDate;
-
- private String dateType;
-
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingDto.java b/src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingDto.java
deleted file mode 100644
index 57d14ab..0000000
--- a/src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingDto.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.Date;
-
-/**
- * @author :yys
- * @date : 2025/7/21 15:42
- */
-@Data
-@ApiModel
-public class SalesLedgerSchedulingDto {
-
- @ApiModelProperty(value = "閿�鍞骇鍝両D")
- private Long salesLedgerProductId;
-
- @ApiModelProperty(value = "閿�鍞彴璐D")
- private Long salesLedgerId;
-
- @ApiModelProperty(value = "鐢熶骇鎬婚噺(鍗曚綅kg)")
- private BigDecimal totalProduction;
-
- /**
- * 鐢熶骇鐐掓満
- */
- @Excel(name = "鐢熶骇鐐掓満")
- private String speculativeTradingName;
-
- /**
- * 閿�鍞悎鍚屽彿
- */
- @Excel(name = "閿�鍞悎鍚屽彿")
- @ApiModelProperty(value = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- /**
- * 瀹㈡埛鍚堝悓鍙�
- */
- @Excel(name = "瀹㈡埛鍚堝悓鍙�")
- @ApiModelProperty(value = "瀹㈡埛鍚堝悓鍙�")
- private String customerContractNo;
-
- /**
- * 椤圭洰鍚嶇О
- */
- @Excel(name = "椤圭洰鍚嶇О")
- @ApiModelProperty(value = "椤圭洰鍚嶇О")
- private String projectName;
-
- /**
- * 褰曞叆鏃ユ湡
- */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "褰曞叆鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @ApiModelProperty(value = "褰曞叆鏃ユ湡")
- private Date entryDate;
-
- @ApiModelProperty(value = "褰曞叆鏃ユ湡寮�濮�")
- private String entryDateStart;
-
- @ApiModelProperty(value = "褰曞叆鏃ユ湡缁撴潫")
- private String entryDateEnd;
-
- /**
- * 瀹㈡埛鍚嶇О
- */
- @Excel(name = "瀹㈡埛鍚嶇О")
- @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
- private String customerName;
-
-
- /**
- * 浜у搧澶х被
- */
- @Excel(name = "浜у搧澶х被")
- @ApiModelProperty(value = "浜у搧澶х被")
- private String productCategory;
-
- /**
- * 瑙勬牸鍨嬪彿
- */
- @Excel(name = "瑙勬牸鍨嬪彿")
- @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
- private String specificationModel;
-
- /**
- * 鍗曚綅
- */
- @Excel(name = "鍗曚綅")
- @ApiModelProperty(value = "鍗曚綅")
- private String unit;
-
- /**
- * 鏁伴噺
- */
- @Excel(name = "鏁伴噺")
- @ApiModelProperty(value = "鏁伴噺")
- private BigDecimal quantity;
-
- /**
- * 鎺掍骇鏁伴噺
- */
- @Excel(name = "鎺掍骇鏁伴噺")
- @ApiModelProperty(value = "鎺掍骇鏁伴噺")
- private BigDecimal schedulingNum;
-
- /**
- * 瀹屽伐鏁伴噺
- */
- @Excel(name = "瀹屽伐鏁伴噺")
- @ApiModelProperty(value = "瀹屽伐鏁伴噺")
- private BigDecimal successNum;
-
- @Excel(name = "鐘舵��")
- private String status;
-
- @Excel(name = "杩涘害")
- private BigDecimal progress;
-
- @ApiModelProperty(value = "绉熸埛ID")
- private Long tenantId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingProcessDto.java b/src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingProcessDto.java
deleted file mode 100644
index b04e43e..0000000
--- a/src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingProcessDto.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * @author :yys
- * @date : 2025/7/21 16:47
- */
-@Data
-@ApiModel
-public class SalesLedgerSchedulingProcessDto {
-
- @ApiModelProperty(value = "閿�鍞骇鍝両D")
- private Long salesLedgerProductId;
-
- @ApiModelProperty(value = "鐢熶骇鎬婚噺(鍗曚綅kg)")
- private BigDecimal totalProduction;
-
- @ApiModelProperty(value = "閿�鍞彴璐D")
- private Long salesLedgerId;
-
- /**
- * 鐢熶骇鐐掓満
- */
- @Excel(name = "鐢熶骇鐐掓満")
- private String speculativeTradingName;
-
- @ApiModelProperty(value = "浜х嚎")
- @Excel(name = "浜х嚎")
- private String productionLine;
-
- @ApiModelProperty(value = "寮�濮嬫椂闂�")
- private String entryDateStart;
-
- @ApiModelProperty(value = "缁撴潫鏃堕棿")
- private String entryDateEnd;
-
- /**
- * id
- */
- private Long id;
-
- /**
- * 閿�鍞悎鍚屽彿
- */
- @Excel(name = "閿�鍞悎鍚屽彿")
- @ApiModelProperty(value = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- /**
- * 瀹㈡埛鍚堝悓鍙�
- */
- @Excel(name = "瀹㈡埛鍚堝悓鍙�")
- @ApiModelProperty(value = "瀹㈡埛鍚堝悓鍙�")
- private String customerContractNo;
-
- /**
- * 椤圭洰鍚嶇О
- */
- @Excel(name = "椤圭洰鍚嶇О")
- @ApiModelProperty(value = "椤圭洰鍚嶇О")
- private String projectName;
-
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "娲惧伐鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @ApiModelProperty(value = "娲惧伐鏃ユ湡")
- private Date schedulingDate;
-
- /**
- * 瀹㈡埛鍚嶇О
- */
- @Excel(name = "瀹㈡埛鍚嶇О")
- @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
- private String customerName;
-
-
- /**
- * 浜у搧澶х被
- */
- @Excel(name = "浜у搧澶х被")
- @ApiModelProperty(value = "浜у搧澶х被")
- private String productCategory;
-
- /**
- * 瑙勬牸鍨嬪彿
- */
- @Excel(name = "瑙勬牸鍨嬪彿")
- @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
- private String specificationModel;
-
- /**
- * 鍗曚綅
- */
- @Excel(name = "鍗曚綅")
- @ApiModelProperty(value = "鍗曚綅")
- private String unit;
-
- /**
- * 鐘舵��
- */
- @ApiModelProperty(value = "鐘舵��")
- private Integer status;
-
- @Excel(name = "鐘舵��", readConverterExp = "1=寰呮帓浜�,2=鎺掍骇涓�,3=宸叉帓浜�")
- private String statusName;
-
- /**
- * 娲惧伐浜�
- */
- @Excel(name = "娲惧伐浜�")
- @ApiModelProperty(value = "娲惧伐浜�")
- private String schedulingUserName;
-
- /**
- * 娲惧伐浜�
- */
- @ApiModelProperty(value = "娲惧伐浜篿d")
- private Long schedulingUserId;
-
-
- /**
- * 鎺掍骇鏁伴噺
- */
- @Excel(name = "鎺掍骇鏁伴噺")
- @ApiModelProperty(value = "鎺掍骇鏁伴噺")
- private BigDecimal schedulingNum;
-
- /**
- * 宸叉帓浜ф暟閲�
- */
- @ApiModelProperty(value = "宸叉帓浜ф暟閲�")
- @Excel(name = "宸叉帓浜ф暟閲�")
- private BigDecimal successNum;
-
- private Long tenantId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java b/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
deleted file mode 100644
index 3e982e7..0000000
--- a/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package com.ruoyi.production.dto;
-
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-
-/**
- * @author :yys
- * @date : 2025/7/22 9:33
- */
-@Data
-@ApiModel
-public class SalesLedgerWorkDto extends SalesLedgerProductDto{
-
- private Long id;
-
- /**
- * 鎺掍骇浜篿d
- */
- @ApiModelProperty(value = "鎺掍骇浜篿d")
- private Long schedulingUserId;
-
- /**
- * 鎺掍骇浜哄悕绉�
- */
- @ApiModelProperty(value = "鎺掍骇浜哄悕绉�")
- @Excel(name = "鎺掍骇浜�")
- private String schedulingUserName;
-
-
- /**
- * 鎺掍骇鏁伴噺
- */
- @ApiModelProperty(value = "鎺掍骇鏁伴噺")
- @Excel(name = "鎺掍骇鏁伴噺")
- private BigDecimal schedulingNum;
-
- /**
- * 鐢熶骇鏁伴噺
- */
- @ApiModelProperty(value = "鐢熶骇鏁伴噺")
- @Excel(name = "鐢熶骇鏁伴噺")
- private BigDecimal finishedNum;
-
- /**
- * 寰呯敓浜ф暟閲�
- */
- @ApiModelProperty(value = "寰呯敓浜ф暟閲�")
- @Excel(name = "寰呯敓浜ф暟閲�")
- private BigDecimal daiNum;
-
- /**
- * 宸ユ椂瀹氶
- */
- @ApiModelProperty(value = "宸ユ椂瀹氶")
- private BigDecimal workHours;
-
- /**
- * 宸ュ簭
- */
- @ApiModelProperty(value = "宸ュ簭")
- @Excel(name = "宸ュ簭")
- private String process;
-
-
- /**
- * 浜х嚎
- */
- @ApiModelProperty(value = "浜х嚎")
- @Excel(name = "浜х嚎")
- private String productionLine;
- /**
- * 鎺掍骇鏃ユ湡
- */
- @ApiModelProperty(value = "鎺掍骇鏃ユ湡")
- @Excel(name = "鎺掍骇鏃ユ湡")
- private String schedulingDate;
-
- @ApiModelProperty(value = "寮�濮嬫椂闂�")
- private String entryDateStart;
- @ApiModelProperty(value = "缁撴潫鏃堕棿")
- private String entryDateEnd;
-
- /**
- * 鎶ュ伐鐘舵�侊紙1-寰呯敓浜� 2-宸叉姤宸ワ級
- */
- @ApiModelProperty(value = "鎶ュ伐鐘舵��")
- private Integer status;
-
- @Excel(name = "鐘舵��", readConverterExp = "1=寰呯敓浜�,2=鐢熶骇涓�,3=宸叉姤宸�")
- private String statusName;
-
- /**
- * 澶囨敞
- */
- @ApiModelProperty(value = "澶囨敞")
- @Excel(name = "澶囨敞")
- private String remark;
-
- /**
- * 鎹熻��
- */
- @ApiModelProperty(value = "鎹熻��")
- @Excel(name = "鎹熻��")
- private String loss;
-
- /**
- * 缁戝畾鏈哄櫒
- */
- @ApiModelProperty(value = "缁戝畾鏈哄櫒")
- @Excel(name = "缁戝畾鏈哄櫒")
- private String speculativeTradingName;
-
- /**
- * 鍙e懗鍒嗙被
- */
- @ApiModelProperty(value = "鍙e懗鍒嗙被")
- @Excel(name = "鍙e懗鍒嗙被")
- private String type;
-
- /**
- * 棰嗙敤
- */
- @ApiModelProperty(value = "棰嗙敤")
- @Excel(name = "棰嗙敤")
- private String receive;
-
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/UserAccountDto.java b/src/main/java/com/ruoyi/production/dto/UserAccountDto.java
deleted file mode 100644
index 75f99bc..0000000
--- a/src/main/java/com/ruoyi/production/dto/UserAccountDto.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.ruoyi.production.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-public class UserAccountDto {
-
- private String userName;
-
- private Long userId;
-
- @ApiModelProperty("璁℃椂")
- private BigDecimal account;
-
- @ApiModelProperty("璁′欢")
- private BigDecimal accountBalance;
-
-}
diff --git a/src/main/java/com/ruoyi/production/dto/UserProductionAccountingDto.java b/src/main/java/com/ruoyi/production/dto/UserProductionAccountingDto.java
deleted file mode 100644
index ba191d1..0000000
--- a/src/main/java/com/ruoyi/production/dto/UserProductionAccountingDto.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.ruoyi.production.dto;
-
-import lombok.Data;
-
-@Data
-public class UserProductionAccountingDto {
- private Long userId;
-
- private String date;
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProcessRouteItemMapper.java b/src/main/java/com/ruoyi/production/mapper/ProcessRouteItemMapper.java
deleted file mode 100644
index 394c3a7..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProcessRouteItemMapper.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.ProcessRouteItemDto;
-import com.ruoyi.production.pojo.ProcessRouteItem;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface ProcessRouteItemMapper extends BaseMapper<ProcessRouteItem> {
-
-
- List<ProcessRouteItemDto> listProcessRouteItemDto(@Param("c") ProcessRouteItemDto processRouteItemDto);
-
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProcessRouteMapper.java b/src/main/java/com/ruoyi/production/mapper/ProcessRouteMapper.java
deleted file mode 100644
index 493b764..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProcessRouteMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.ProcessRouteDto;
-import com.ruoyi.production.pojo.ProcessRoute;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-@Mapper
-public interface ProcessRouteMapper extends BaseMapper<ProcessRoute> {
-
- IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page,@Param("c") ProcessRouteDto processRouteDto);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductBomMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductBomMapper.java
deleted file mode 100644
index 1183335..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductBomMapper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.ProductBomDto;
-import com.ruoyi.production.dto.ProductProcessDto;
-import com.ruoyi.production.pojo.ProductBom;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * <p>
- * BOM涓昏〃 Mapper 鎺ュ彛
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 09:59:27
- */
-@Mapper
-public interface ProductBomMapper extends BaseMapper<ProductBom> {
-
- IPage<ProductBomDto> listPage(Page page, @Param("c") ProductBomDto productBomDto);
-
- ProductBomDto getById(@Param("bomId") Long bomId);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductOrderMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductOrderMapper.java
deleted file mode 100644
index 72aa6cd..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductOrderMapper.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.ProductBomDto;
-import com.ruoyi.production.dto.ProductOrderDto;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.pojo.ProcessRoute;
-import com.ruoyi.production.pojo.ProductOrder;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface ProductOrderMapper extends BaseMapper<ProductOrder> {
-
- IPage<ProductOrderDto> pageProductOrder(Page page, @Param("c") ProductOrderDto productOrder);
-
- List<ProcessRoute> listProcessRoute(@Param("productModelId") Long productModelId);
-
- List<ProductStructureDto> listProcessBom(@Param("orderId") Long orderId);
-
- Integer countCreated(@Param("startDate") String startDate, @Param("endDate") String endDate);
-
- Integer countCompleted(@Param("startDate") String startDate, @Param("endDate") String endDate);
-
- Integer countPending(@Param("startDate") String startDate, @Param("endDate") String endDate);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductOrderMaterialMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductOrderMaterialMapper.java
deleted file mode 100644
index 53c4f90..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductOrderMaterialMapper.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.ruoyi.production.dto.ProductOrderMaterialDto;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.pojo.ProductOrderMaterial;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface ProductOrderMaterialMapper extends BaseMapper<ProductOrderMaterial> {
-
- IPage<ProductOrderMaterial> pickMaterial(@Param("id") Long ProductOrderId);
-
- List<ProductStructureDto> selectLeafNode(@Param("bomId") Long bomId);
-
- List<ProductOrderMaterialDto> selectByProductModelIds(@Param("ids") List<Long> productModelIds);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
deleted file mode 100644
index b2168c3..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.home.dto.processDataProductionStatisticsDto;
-import com.ruoyi.production.dto.ProductProcessDto;
-import com.ruoyi.production.pojo.ProductProcess;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-@Mapper
-public interface ProductProcessMapper extends BaseMapper<ProductProcess> {
- IPage<ProductProcessDto> listPage(Page page,@Param("productProcessDto") ProductProcessDto productProcessDto);
-
- List<processDataProductionStatisticsDto> calculateProductionStatistics(LocalDateTime startDateTime, LocalDateTime endDateTime, Long userId, List<Long> processIds);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductProcessRouteItemMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductProcessRouteItemMapper.java
deleted file mode 100644
index 48b38ec..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductProcessRouteItemMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.production.dto.ProductProcessRouteItemDto;
-import com.ruoyi.production.pojo.ProductProcessRouteItem;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface ProductProcessRouteItemMapper extends BaseMapper<ProductProcessRouteItem> {
- List<ProductProcessRouteItemDto> listItem(@Param("orderId") Long orderId);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductProcessRouteMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductProcessRouteMapper.java
deleted file mode 100644
index 06ae748..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductProcessRouteMapper.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.ruoyi.production.dto.ProcessRouteDto;
-import com.ruoyi.production.pojo.ProductProcessRoute;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * <p>
- * Mapper 鎺ュ彛
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
- */
-@Mapper
-public interface ProductProcessRouteMapper extends BaseMapper<ProductProcessRoute> {
-
- ProcessRouteDto listMain(@Param("orderId") Long orderId);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java
deleted file mode 100644
index 11cc78d..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.pojo.ProductStructure;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface ProductStructureMapper extends BaseMapper<ProductStructure> {
-
- List<ProductStructureDto> listBybomId(@Param("bomId") Integer bomId);
-
- List<ProductStructureDto> listBybomAndProcess(@Param("bomId") Integer bomId, @Param("processId") Long processId);
-
- List<ProductStructureDto> selectLeafNode(@Param("bomId") Integer bomId);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderFileMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderFileMapper.java
deleted file mode 100644
index 72b8f94..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderFileMapper.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.ruoyi.production.pojo.ProductWorkOrderFile;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * <p>
- * 鐢熶骇宸ュ崟闄勪欢琛� Mapper 鎺ュ彛
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-23 03:28:32
- */
-@Mapper
-public interface ProductWorkOrderFileMapper extends BaseMapper<ProductWorkOrderFile> {
-
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
deleted file mode 100644
index d637f7d..0000000
--- a/src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.ProductWorkOrderDto;
-import com.ruoyi.production.pojo.ProductWorkOrder;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface ProductWorkOrderMapper extends BaseMapper<ProductWorkOrder> {
-
- IPage<ProductWorkOrderDto> pageProductWorkOrder(Page<ProductWorkOrderDto> page, @Param("c") ProductWorkOrderDto productWorkOrder);
-
- ProductWorkOrderDto getProductWorkOrderFlowCard(@Param("id") Long id);
-
- List<ProductWorkOrderDto> selectWorkOrderStartStats(@Param("startDate") String startDate, @Param("endDate") String endDate);
-
- ProductWorkOrder selectMax(@Param("datePrefix") String datePrefix);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionAccountMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionAccountMapper.java
new file mode 100644
index 0000000..f8d4fee
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionAccountMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionAccount;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇鏍哥畻琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionAccountMapper extends BaseMapper<ProductionAccount> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionBomStructureMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionBomStructureMapper.java
new file mode 100644
index 0000000..ac9d3d0
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionBomStructureMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionBomStructure;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟BOM浜у搧缁撴瀯 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionBomStructureMapper extends BaseMapper<ProductionBomStructure> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOperationMainParamMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOperationMainParamMapper.java
new file mode 100644
index 0000000..356a810
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOperationMainParamMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOperationMainParam;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟鎶ュ伐鍙傛暟琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOperationMainParamMapper extends BaseMapper<ProductionOperationMainParam> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOperationTaskMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOperationTaskMapper.java
new file mode 100644
index 0000000..ee7e406
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOperationTaskMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOperationTask;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOperationTaskMapper extends BaseMapper<ProductionOperationTask> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOrderBomMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOrderBomMapper.java
new file mode 100644
index 0000000..65c02ff
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOrderBomMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOrderBom;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟BOM Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOrderBomMapper extends BaseMapper<ProductionOrderBom> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOrderMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOrderMapper.java
new file mode 100644
index 0000000..ab6d5f7
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOrderMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOrderMapper extends BaseMapper<ProductionOrder> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOrderPickMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOrderPickMapper.java
new file mode 100644
index 0000000..95c4324
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOrderPickMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOrderPick;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 璁㈠崟棰嗘枡绾胯竟浠� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOrderPickMapper extends BaseMapper<ProductionOrderPick> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOrderPickRecordMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOrderPickRecordMapper.java
new file mode 100644
index 0000000..711f244
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOrderPickRecordMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOrderPickRecord;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 绾胯竟浠撳嚭鍏ュ簱璁板綍 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOrderPickRecordMapper extends BaseMapper<ProductionOrderPickRecord> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingMapper.java
new file mode 100644
index 0000000..14a1468
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOrderRouting;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOrderRoutingMapper extends BaseMapper<ProductionOrderRouting> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingOperationMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingOperationMapper.java
new file mode 100644
index 0000000..83636c7
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingOperationMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOrderRoutingOperation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOrderRoutingOperationMapper extends BaseMapper<ProductionOrderRoutingOperation> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingOperationParamMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingOperationParamMapper.java
new file mode 100644
index 0000000..efcc3ca
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionOrderRoutingOperationParamMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionOrderRoutingOperationParam;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Mapper
+public interface ProductionOrderRoutingOperationParamMapper extends BaseMapper<ProductionOrderRoutingOperationParam> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java
new file mode 100644
index 0000000..5459f5b
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.production.pojo.ProductionPlan;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鐢熶骇璁″垝琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 02:11:10
+ */
+@Mapper
+public interface ProductionPlanMapper extends BaseMapper<ProductionPlan> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionProductInputMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionProductInputMapper.java
index be90d7a..854b238 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionProductInputMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionProductInputMapper.java
@@ -1,24 +1,18 @@
package com.ruoyi.production.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.ProductionProductInputDto;
import com.ruoyi.production.pojo.ProductionProductInput;
import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import java.util.List;
-import java.util.Map;
-
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐鎶曞叆琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@Mapper
public interface ProductionProductInputMapper extends BaseMapper<ProductionProductInput> {
- IPage<ProductionProductInputDto> listPageProductionProductInputDto(Page page, @Param("c") ProductionProductInputDto productionProductInputDto);
- /**
- * 鏍规嵁鐢熶骇涓昏〃ID鎵归噺鍒犻櫎鎶曞叆琛ㄦ暟鎹�
- */
- int deleteByProductMainIds(@Param("productMainIds") List<Long> productMainIds);
-
- List<Map<String, Object>> selectInputStats(@Param("startDate") String startDate, @Param("endDate") String endDate);
}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
index e63e032..3c4ccdc 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
@@ -1,36 +1,18 @@
package com.ruoyi.production.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.ProductionProductMainDto;
-import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
-import com.ruoyi.production.pojo.ProductOrder;
import com.ruoyi.production.pojo.ProductionProductMain;
import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import java.util.ArrayList;
-import java.util.List;
-
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@Mapper
public interface ProductionProductMainMapper extends BaseMapper<ProductionProductMain> {
- IPage<ProductionProductMainDto> listPageProductionProductMainDto(Page page, @Param("c") ProductionProductMainDto productionProductMainDto);
-
- /**
- * 鏍规嵁宸ュ崟ID鎵归噺鍒犻櫎鐢熶骇涓昏〃鏁版嵁
- */
- int deleteByWorkOrderIds(@Param("workOrderIds") List<Long> workOrderIds);
-
- /**
- * 鏍规嵁鎶ュ伐id鏌ヨ鐢熶骇璁㈠崟
- * @param productMainId
- * @return
- */
- ProductOrder getOrderByMainId(@Param("productMainId") Long productMainId);
-
- IPage<ProductionProductMainDto> listProductionDetails(@Param("ew") SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page);
-
- ArrayList<Long> listMain(List<Long> idList);
}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionProductOutputMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionProductOutputMapper.java
index cbb32fd..46f3f95 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionProductOutputMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionProductOutputMapper.java
@@ -1,26 +1,18 @@
package com.ruoyi.production.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.ProductionProductOutputDto;
import com.ruoyi.production.pojo.ProductionProductOutput;
import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import java.util.List;
-import java.util.Map;
-
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐浜у嚭琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@Mapper
public interface ProductionProductOutputMapper extends BaseMapper<ProductionProductOutput> {
- IPage<ProductionProductOutputDto> listPageProductionProductOutputDto(Page page, @Param("c") ProductionProductOutputDto productionProductOutputDto);
- /**
- * 鏍规嵁鐢熶骇涓昏〃ID鎵归噺鍒犻櫎浜у嚭琛ㄦ暟鎹�
- */
- int deleteByProductMainIds(@Param("productMainIds") List<Long> productMainIds);
-
- List<ProductionProductOutputDto> selectOutputStats(@Param("startDate") String startDate, @Param("endDate") String endDate);
-
- List<Map<String, Object>> selectDailyOutputStats(@Param("startDate") String startDate, @Param("endDate") String endDate);
}
diff --git a/src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java b/src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java
deleted file mode 100644
index 8dec95c..0000000
--- a/src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
-import com.ruoyi.production.dto.UserAccountDto;
-import com.ruoyi.production.dto.UserProductionAccountingDto;
-import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:38
- */
-public interface SalesLedgerProductionAccountingMapper extends BaseMapper<SalesLedgerProductionAccounting> {
-
-
- IPage<SalesLedgerProductionAccountingDto> listPage(Page page,@Param("salesLedgerDto") SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto);
-
-
- IPage<SalesLedgerProductionAccountingDto> pageProductionAccounting(Page page, @Param("ew") SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto);
-
- List<Map<String, Object>> selectDailyWagesStats(@Param("startDate") String startDate, @Param("endDate") String endDate);
-
- UserAccountDto getByUserId(@Param( "ew") UserProductionAccountingDto userProductionAccountingDto);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/SalesLedgerSchedulingMapper.java b/src/main/java/com/ruoyi/production/mapper/SalesLedgerSchedulingMapper.java
deleted file mode 100644
index 140de3d..0000000
--- a/src/main/java/com/ruoyi/production/mapper/SalesLedgerSchedulingMapper.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.SalesLedgerSchedulingDto;
-import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto;
-import com.ruoyi.production.pojo.SalesLedgerScheduling;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:37
- */
-public interface SalesLedgerSchedulingMapper extends BaseMapper<SalesLedgerScheduling> {
-
- /**
- * 鍒嗛〉鏌ヨ
- * @param page
- * @param salesLedgerSchedulingDto
- * @return
- */
- IPage<SalesLedgerSchedulingDto> listPage(Page page,@Param("salesLedgerDto") SalesLedgerSchedulingDto salesLedgerSchedulingDto);
-
- /**
- * 瀵煎嚭
- * @return
- */
- List<SalesLedgerSchedulingDto> list();
-
- /**
- * 鍒嗛〉鏌ヨ宸ュ簭鎺掍骇
- * @param page
- * @param salesLedgerSchedulingDto
- * @return
- */
- IPage<SalesLedgerSchedulingProcessDto> listPageProcess(Page page,@Param("salesLedgerDto") SalesLedgerSchedulingProcessDto salesLedgerSchedulingDto);
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/SalesLedgerWorkMapper.java b/src/main/java/com/ruoyi/production/mapper/SalesLedgerWorkMapper.java
deleted file mode 100644
index adf5dc3..0000000
--- a/src/main/java/com/ruoyi/production/mapper/SalesLedgerWorkMapper.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.production.dto.SalesLedgerWorkDto;
-import com.ruoyi.production.pojo.SalesLedgerWork;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:37
- */
-public interface SalesLedgerWorkMapper extends BaseMapper<SalesLedgerWork> {
-
- /**
- * 鍒嗛〉鏌ヨ
- * @param page
- * @param salesLedgerWorkDto
- * @return
- */
- IPage<SalesLedgerWorkDto> listPage(Page page,@Param("salesLedgerDto") SalesLedgerWorkDto salesLedgerWorkDto);
-
-}
diff --git a/src/main/java/com/ruoyi/production/mapper/SpeculativeTradingInfoMapper.java b/src/main/java/com/ruoyi/production/mapper/SpeculativeTradingInfoMapper.java
deleted file mode 100644
index 21d4a11..0000000
--- a/src/main/java/com/ruoyi/production/mapper/SpeculativeTradingInfoMapper.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.ruoyi.production.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.production.pojo.SpeculativeTradingInfo;
-
-/**
- * @author :yys
- * @date : 2025/11/11 15:40
- */
-public interface SpeculativeTradingInfoMapper extends BaseMapper<SpeculativeTradingInfo> {
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProcessRoute.java b/src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
deleted file mode 100644
index 3925f6e..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-@TableName("process_route")
-@Data
-@ApiModel(value = "processRoute", description = "宸ヨ壓璺嚎涓昏〃")
-public class ProcessRoute {
-
- @ApiModelProperty(value = "搴忓彿")
- private Long id;
-
- @ApiModelProperty(value = "浜у搧ID")
- //product_model
- private Long productModelId;
-
- @ApiModelProperty(value = "鎻忚堪")
- private String description;
-
- @ApiModelProperty(value = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- @ApiModelProperty(value = "鏇存柊鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- @ApiModelProperty(value = "宸ヨ壓璺嚎缂栫爜")
- private String processRouteCode;
-
- @ApiModelProperty(value = "BOM鐨処D")
- private Integer bomId;
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProcessRouteItem.java b/src/main/java/com/ruoyi/production/pojo/ProcessRouteItem.java
deleted file mode 100644
index 57f567c..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProcessRouteItem.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-@Data
-@TableName("process_route_item")
-@ApiModel(value = "processRouteItem", description = "宸ヨ壓璺嚎瀛愯〃")
-public class ProcessRouteItem {
-
- @TableId(type = IdType.AUTO)
- private Long id;
-
- @ApiModelProperty(value = "宸ヨ壓璺嚎id")
- private Long routeId;
-
- @ApiModelProperty(value = "宸ュ簭id")
- private Long processId;
-
- @ApiModelProperty(value ="浜у搧id")
- private Long productModelId;
-
- @ApiModelProperty(value = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
- @TableField(fill = FieldFill.INSERT)
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
- private LocalDateTime createTime;
- @ApiModelProperty(value = "鏇存柊鏃堕棿")
- @TableField(fill = FieldFill.UPDATE)
- private LocalDateTime updateTime;
-
- @ApiModelProperty(value ="鎷栧姩鎺掑簭")
- private Integer dragSort;
-
-
- @ApiModelProperty(value ="鏄惁璐ㄦ")
- private Boolean isQuality;
-
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductBom.java b/src/main/java/com/ruoyi/production/pojo/ProductBom.java
deleted file mode 100644
index f80cafe..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductBom.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.format.annotation.DateTimeFormat;
-
-/**
- * <p>
- * BOM涓昏〃
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 09:59:27
- */
-@Getter
-@Setter
-@TableName("product_bom")
-@ApiModel(value = "ProductBom瀵硅薄", description = "BOM涓昏〃")
-public class ProductBom implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Integer id;
-
- @ApiModelProperty("bom缂栧彿")
- private String bomNo;
-
- @ApiModelProperty("浜у搧瑙勬牸id")
- private Long productModelId;
-
- @ApiModelProperty("澶囨敞")
- private String remark;
-
- @ApiModelProperty("鐗堟湰鍙�")
- private String version;
-
- @ApiModelProperty("鍒涘缓鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- @ApiModelProperty("鏇存柊鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- @ApiModelProperty("鍒涘缓鑰�")
- @TableField(fill = FieldFill.INSERT)
- private Long createUser;
-
- @ApiModelProperty("鏇存柊鑰�")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Long updateUser;
-
- @ApiModelProperty("绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
deleted file mode 100644
index 86f32ca..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
-@Data
-@TableName("product_order")
-public class ProductOrder implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 閿�鍞彴璐d
- */
- @ApiModelProperty(value = "閿�鍞彴璐d")
- private Long salesLedgerId;
-
- /**
- * 閿�鍞彴璐︿骇鍝乮d(sales_ledger_product)
- */
- @ApiModelProperty(value = "閿�鍞彴璐︿骇鍝乮d")
- private Long saleLedgerProductId;
-
- /**
- * 浜у搧瑙勬牸id
- */
- @ApiModelProperty(value = "浜у搧瑙勬牸id")
- private Long productModelId;
-
- /**
- * 妯$増鐨勫伐鑹鸿矾绾縤d
- */
- @ApiModelProperty(value = "宸ヨ壓璺嚎id")
- private Long routeId;
-
- /**
- * 鐢熶骇璁㈠崟鍙�
- */
- @ApiModelProperty(value = "鐢熶骇璁㈠崟鍙�")
- @Excel(name = "鐢熶骇璁㈠崟鍙�")
- private String npsNo;
-
- /**
- * 绉熸埛id
- */
- @ApiModelProperty(value = "绉熸埛id")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- //鍒涘缓鏃堕棿
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @Excel(name = "鍒涘缓鏃堕棿")
- private LocalDateTime createTime;
-
- //淇敼鏃堕棿
- @ApiModelProperty(value = "淇敼鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime updateTime;
-
-
- /**
- * 闇�姹傛暟閲�
- */
- @ApiModelProperty(value = "闇�姹傛暟閲�")
- @Excel(name = "闇�姹傛暟閲�")
- private BigDecimal quantity;
-
- /**
- * 瀹屾垚鏁伴噺
- */
- @ApiModelProperty(value = "瀹屾垚鏁伴噺")
- @Excel(name = "瀹屾垚鏁伴噺")
- private BigDecimal completeQuantity;
-
- @Excel(name = "寮�濮嬫椂闂�")
- @ApiModelProperty(value = "寮�濮嬫椂闂�")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime startTime;
-
- @ApiModelProperty(value = "缁撴潫鏃堕棿")
- @Excel(name = "缁撴潫鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime endTime;
-
-
-
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductOrderMaterial.java b/src/main/java/com/ruoyi/production/pojo/ProductOrderMaterial.java
deleted file mode 100644
index 2d8d04d..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductOrderMaterial.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
-@Data
-@TableName("product_order_material")
-@ApiModel(description="鐢熶骇璁㈠崟鐗╂枡琛�")
-public class ProductOrderMaterial implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 涓婚敭ID
- */
- @ApiModelProperty(value="涓婚敭ID")
- private Long id;
- /**
- * 鐢熶骇璁㈠崟ID
- */
- @ApiModelProperty(value="鐢熶骇璁㈠崟ID")
- private Long productOrderId;
- /**
- * 宸ュ簭鍚嶇О
- */
- @ApiModelProperty(value="宸ュ簭鍚嶇О")
- private String processName;
- /**
- * 鍘熸枡鍚嶇О
- */
- @ApiModelProperty(value="鍘熸枡鍚嶇О")
- private String materialName;
- /**
- * 鍘熸枡鍨嬪彿
- */
- @ApiModelProperty(value="鍘熸枡鍨嬪彿")
- private String materialModel;
- /**
- * 闇�姹傛暟閲�
- */
- @ApiModelProperty(value="闇�姹傛暟閲�")
- private BigDecimal requiredQty;
- /**
- * 璁¢噺鍗曚綅
- */
- @ApiModelProperty(value="璁¢噺鍗曚綅")
- private String unit;
- /**
- * 棰嗙敤鏁伴噺
- */
- @ApiModelProperty(value="棰嗙敤鏁伴噺")
- private BigDecimal pickQty;
- /**
- * 琛ユ枡鏁伴噺
- */
- @ApiModelProperty(value="琛ユ枡鏁伴噺")
- private BigDecimal supplementQty;
- /**
- * 閫�鏂欐暟閲�
- */
- @ApiModelProperty(value="閫�鏂欐暟閲�")
- private BigDecimal returnQty;
- /**
- * 瀹為檯鏁伴噺
- */
- @ApiModelProperty(value="瀹為檯鏁伴噺")
- private BigDecimal actualQty;
-
- @ApiModelProperty(value = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Long createUser;
-
- @ApiModelProperty(value = "淇敼鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- @ApiModelProperty(value = "淇敼鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Long updateUser;
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductProcess.java b/src/main/java/com/ruoyi/production/pojo/ProductProcess.java
deleted file mode 100644
index b5fc62a..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductProcess.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
-@TableName("product_process")
-@Data
-@ExcelIgnoreUnannotated
-@ApiModel(value = "productProcess", description = "宸ュ簭琛�")
-public class ProductProcess implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 宸ュ簭鍚嶇О
- */
- @Excel(name = "宸ュ簭鍚嶇О")
- private String name;
-
- /**
- * 宸ュ簭缂栧彿
- */
- @Excel(name = "宸ュ簭缂栧彿")
- private String no;
-
- /**
- * 澶囨敞
- */
- @Excel(name = "澶囨敞")
- private String remark;
-
-
- /**
- * 宸ヨ祫瀹氶
- */
- @Excel(name = "宸ヨ祫瀹氶")
- @TableField(updateStrategy = FieldStrategy.IGNORED)
- private BigDecimal salaryQuota;
-
- @ApiModelProperty("绫诲瀷 鍖哄垎鏄鏃惰繕鏄浠� 0 璁℃椂 1璁′欢")
- private Long type;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @TableField(fill = FieldFill.INSERT)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime createTime;
-
- /**
- * 淇敼鏃堕棿
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime updateTime;
-
- /**
- * 绉熸埛ID
- */
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @ApiModelProperty(value ="鏄惁璐ㄦ")
- private Boolean isQuality;
-
-
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
- @ApiModelProperty(value ="鏄惁鍏ュ簱")
- @TableField("is_inbound")
- private Boolean inbound;
-
- @ApiModelProperty(value ="鏄惁鎶ュ伐")
- @TableField("is_report_work")
- private Boolean reportWork;
-
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductProcessRoute.java b/src/main/java/com/ruoyi/production/pojo/ProductProcessRoute.java
deleted file mode 100644
index 9c1b5fc..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductProcessRoute.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * <p>
- *
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
- */
-@Getter
-@Setter
-@TableName("product_process_route")
-@ApiModel(value = "ProductProcessRoute瀵硅薄", description = "")
-public class ProductProcessRoute implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- @ApiModelProperty("浜у搧id")
- //product_model
- private Long productModelId;
-
- @ApiModelProperty("鎻忚堪")
- private String description;
-
- @ApiModelProperty("绉熸埛id")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @ApiModelProperty("褰曞叆鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- @ApiModelProperty("鏇存柊鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- @ApiModelProperty("鍏宠仈bom鐨刬d")
- private Integer bomId;
-
- @ApiModelProperty("宸ヨ壓璺嚎缂栫爜")
- private String processRouteCode;
-
- @ApiModelProperty("鐢熶骇璁㈠崟鐨刬d")
- private Long productOrderId;
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductProcessRouteItem.java b/src/main/java/com/ruoyi/production/pojo/ProductProcessRouteItem.java
deleted file mode 100644
index 1f7c585..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductProcessRouteItem.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-@Data
-@TableName("product_process_route_item")
-public class ProductProcessRouteItem {
-
- @TableId(type = IdType.AUTO)
- private Long id;
-
- @ApiModelProperty(value = "鐢熶骇璁㈠崟id(product_order_id)")
- private Long productOrderId;
-
- @ApiModelProperty(value = "鐢熶骇璁㈠崟鐨勫伐鑹鸿矾绾縤d(product_process_route)")
- private Long productRouteId;
-
- @ApiModelProperty(value = "宸ュ簭id")
- private Long processId;
-
- @ApiModelProperty(value ="浜у搧id")
- private Long productModelId;
-
- @ApiModelProperty(value = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
- @TableField(fill = FieldFill.INSERT)
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
- private LocalDateTime createTime;
- @ApiModelProperty(value = "鏇存柊鏃堕棿")
- @TableField(fill = FieldFill.UPDATE)
- private LocalDateTime updateTime;
-
- @ApiModelProperty(value ="鎷栧姩鎺掑簭")
- private Integer dragSort;
-
- @ApiModelProperty(value ="鏄惁璐ㄦ")
- private Boolean isQuality;
-
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductStructure.java b/src/main/java/com/ruoyi/production/pojo/ProductStructure.java
deleted file mode 100644
index e23427c..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductStructure.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.*;
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@TableName("product_structure")
-@Data
-@ApiModel(value = "ProductStructure", description = "BOM瀛愯〃")
-public class ProductStructure {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 浜у搧鍚嶇О
- */
- private Long productModelId;
-
- /**
- * 宸ュ簭id
- */
- private Long processId;
-
- /**
- * 鍗曚綅浜у嚭闇�瑕佹暟閲�
- */
- private BigDecimal unitQuantity;
-
- /**
- * 闇�姹傛暟閲�
- */
- private BigDecimal demandedQuantity;
-
- /**
- * 鍗曚綅
- */
- private String unit;
-
- /**
- * 绉熸埛ID
- */
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- /**
- * 鍏宠仈BOMid
- */
- private Integer bomId;
-
- /**
- * 鐖惰妭鐐笽D
- */
- private Long parentId;
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductWorkOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductWorkOrder.java
deleted file mode 100644
index bbfb332..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductWorkOrder.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-/**
- * 浜у搧宸ュ崟瀹炰綋绫�
- * 瀵瑰簲鏁版嵁搴撹〃锛歱roduct_work_order
- */
-@Data
-@TableName("product_work_order")
-public class ProductWorkOrder implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * 涓婚敭id
- */
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 宸ヨ壓璺嚎椤圭洰id
- */
- @ApiModelProperty(value = "宸ヨ壓璺嚎椤圭洰id")
- private Long productProcessRouteItemId;
-
- /**
- * 鐢熶骇璁㈠崟id
- */
- @ApiModelProperty(value = "鐢熶骇璁㈠崟id")
- private Long productOrderId;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime createTime;
-
- /**
- * 淇敼鏃堕棿
- */
- @ApiModelProperty(value = "淇敼鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime updateTime;
-
- /**
- * 宸ュ崟缂栧彿
- */
- @ApiModelProperty(value = "宸ュ崟缂栧彿")
- private String workOrderNo;
-
- /**
- * 鐘舵�� 1 寰呯‘璁� 2 寰呯敓浜� 3鐢熶骇涓� 4宸插畬鎴�
- */
- @ApiModelProperty(value = "鐘舵�� 1 寰呯‘璁� 2 寰呯敓浜� 3鐢熶骇涓� 4宸插畬鎴�")
- private Integer status;
-
- /**
- * 绉熸埛id
- */
- @ApiModelProperty(value = "绉熸埛id")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- /**
- * 璁″垝寮�濮嬫椂闂�
- */
- @ApiModelProperty(value = "璁″垝寮�濮嬫椂闂�")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate planStartTime;
-
- /**
- * 璁″垝缁撴潫鏃堕棿
- */
- @ApiModelProperty(value = "璁″垝缁撴潫鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate planEndTime;
-
- /**
- * 瀹為檯寮�濮嬫椂闂�
- */
- @ApiModelProperty(value = "瀹為檯寮�濮嬫椂闂�")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate actualStartTime;
-
- /**
- * 瀹為檯缁撴潫鏃堕棿
- */
- @ApiModelProperty(value = "瀹為檯缁撴潫鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate actualEndTime;
-
- /**
- * 闇�姹傞噺
- */
- @ApiModelProperty(value = "闇�姹傛暟閲�")
- private BigDecimal planQuantity;
-
- /**
- * 瀹屾垚鏁伴噺
- */
- @ApiModelProperty(value = "瀹屾垚鏁伴噺")
- private BigDecimal completeQuantity;
-
-
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductWorkOrderFile.java b/src/main/java/com/ruoyi/production/pojo/ProductWorkOrderFile.java
deleted file mode 100644
index 6e67334..0000000
--- a/src/main/java/com/ruoyi/production/pojo/ProductWorkOrderFile.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * <p>
- * 鐢熶骇宸ュ崟闄勪欢琛�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-23 03:28:32
- */
-@Getter
-@Setter
-@TableName("product_work_order_file")
-@ApiModel(value = "ProductWorkOrderFile瀵硅薄", description = "鐢熶骇宸ュ崟闄勪欢琛�")
-public class ProductWorkOrderFile implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Integer id;
-
- @ApiModelProperty("鍏宠仈宸ュ崟id")
- private Integer workOrderId;
-
- @ApiModelProperty("鏂囦欢鍚嶇О")
- private String name;
-
- @ApiModelProperty("鏂囦欢璺緞")
- private String url;
-
- @ApiModelProperty("鏂囦欢澶у皬")
- private Integer fileSize;
-
- @ApiModelProperty("鍒涘缓鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- @ApiModelProperty("鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Long createUser;
-
- @ApiModelProperty("淇敼鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- @ApiModelProperty("淇敼鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Long updateUser;
-
- @ApiModelProperty("绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionAccount.java b/src/main/java/com/ruoyi/production/pojo/ProductionAccount.java
new file mode 100644
index 0000000..910c2a3
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionAccount.java
@@ -0,0 +1,79 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鐢熶骇鏍哥畻琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_account")
+@ApiModel(value = "ProductionAccount瀵硅薄", description = "鐢熶骇鏍哥畻琛�")
+public class ProductionAccount implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("閿�鍞彴璐d")
+ private Long salesLedgerId;
+
+ @ApiModelProperty("閿�鍞骇鍝佽鏍糹d")
+ private Long salesLedgerProductId;
+
+ @ApiModelProperty("鎶ュ伐琛╥d")
+ private Long productionProductMainId;
+
+ @ApiModelProperty("鐢熶骇浜篿d")
+ private Long schedulingUserId;
+
+ @ApiModelProperty("鐢熶骇浜哄悕绉�")
+ private String schedulingUserName;
+
+ @ApiModelProperty("鐢熶骇鏁伴噺")
+ private BigDecimal finishedNum;
+
+ @ApiModelProperty("宸ユ椂瀹氶")
+ private BigDecimal workHours;
+
+ @ApiModelProperty("宸ュ簭鍚嶇О")
+ private String technologyOperationName;
+
+ @ApiModelProperty("鐢熶骇鏃ユ湡")
+ private LocalDateTime schedulingDate;
+
+ @ApiModelProperty("鍒涘缓鑰�")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼鑰�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionBomStructure.java b/src/main/java/com/ruoyi/production/pojo/ProductionBomStructure.java
new file mode 100644
index 0000000..a70c057
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionBomStructure.java
@@ -0,0 +1,63 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟BOM浜у搧缁撴瀯
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_bom_structure")
+@ApiModel(value = "ProductionBomStructure瀵硅薄", description = "鐢熶骇璁㈠崟BOM浜у搧缁撴瀯")
+public class ProductionBomStructure implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鐖惰妭鐐笽D")
+ private Long parentId;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟id")
+ private Long productionOrderId;
+
+ @ApiModelProperty("浜у搧瑙勬牸id")
+ private Long productModelId;
+
+ @ApiModelProperty("宸ュ簭id")
+ private Long technologyOperationId;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟BOMid")
+ private Long productionOrderBomId;
+
+ @ApiModelProperty("鍗曚綅浜у嚭闇�瑕佹暟閲�")
+ private BigDecimal unitQuantity;
+
+ @ApiModelProperty("闇�姹傛暟閲�")
+ private BigDecimal demandedQuantity;
+
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOperationMainParam.java b/src/main/java/com/ruoyi/production/pojo/ProductionOperationMainParam.java
new file mode 100644
index 0000000..cd136ad
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOperationMainParam.java
@@ -0,0 +1,96 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟鎶ュ伐鍙傛暟琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_operation_main_param")
+@ApiModel(value = "ProductionOperationMainParam瀵硅薄", description = "鐢熶骇宸ュ崟鎶ュ伐鍙傛暟琛�")
+public class ProductionOperationMainParam implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("宸ヨ壓璺嚎宸ュ簭鍙傛暟琛╥d")
+ private Long technologyRoutingOperationParamId;
+
+ @ApiModelProperty("鍙傛暟缂栫爜(鍞竴鏍囪瘑)")
+ private String paramCode;
+
+ @ApiModelProperty("鍙傛暟鍚嶇О")
+ private String paramName;
+
+ @ApiModelProperty("鍙傛暟绫诲瀷(1鏁板瓧 2鏂囨湰 3涓嬫媺閫夋嫨 4鏃堕棿)")
+ private Byte paramType;
+
+ @ApiModelProperty("鍙傛暟鏍煎紡")
+ private String paramFormat;
+
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("鏄惁蹇呭~")
+ private Byte isRequired;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private String createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private String updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+
+ @ApiModelProperty("鍩虹鍙傛暟ID")
+ private Long technologyParamId;
+
+ @ApiModelProperty("宸ュ簭id")
+ private Long technologyOperationId;
+
+ @ApiModelProperty("宸ュ簭鍙傛暟ID")
+ private Long technologyOperationParamId;
+
+ @ApiModelProperty("宸ヨ壓璺嚎宸ュ簭ID")
+ private Long technologyRoutingOperationId;
+
+ @ApiModelProperty("鏍囧噯鍊�")
+ private String standardValue;
+
+ @ApiModelProperty("杈撳叆鍊�")
+ private String value;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟ID")
+ private String productionOrderRoutingOperationParamId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOperationTask.java b/src/main/java/com/ruoyi/production/pojo/ProductionOperationTask.java
new file mode 100644
index 0000000..08f4d39
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOperationTask.java
@@ -0,0 +1,79 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_operation_task")
+@ApiModel(value = "ProductionOperationTask瀵硅薄", description = "鐢熶骇宸ュ崟琛�")
+public class ProductionOperationTask implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("宸ヨ壓璺嚎宸ュ簭琛╥d")
+ private Long technologyRoutingOperationId;
+
+ @ApiModelProperty("褰曞叆鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("宸ュ崟缂栧彿")
+ private String workOrderNo;
+
+ @ApiModelProperty("璁″垝寮�濮嬫椂闂�")
+ private LocalDate planStartTime;
+
+ @ApiModelProperty("璁″垝缁撴潫鏃堕棿")
+ private LocalDate planEndTime;
+
+ @ApiModelProperty("瀹為檯寮�濮嬫椂闂�")
+ private LocalDate actualStartTime;
+
+ @ApiModelProperty("瀹為檯缁撴潫鏃堕棿")
+ private LocalDate actualEndTime;
+
+ @ApiModelProperty("鐘舵�� 1 寰呯‘璁� 2 寰呯敓浜� 3鐢熶骇涓� 4宸茬敓浜�")
+ private Integer status;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟id")
+ private Long productionOrderId;
+
+ @ApiModelProperty("璁″垝鏁伴噺")
+ private BigDecimal planQuantity;
+
+ @ApiModelProperty("瀹屾垚鏁伴噺")
+ private BigDecimal completeQuantity;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
new file mode 100644
index 0000000..5fcab22
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
@@ -0,0 +1,77 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_order")
+@ApiModel(value = "ProductionOrder瀵硅薄", description = "鐢熶骇璁㈠崟琛�")
+public class ProductionOrder implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("閿�鍞彴璐d")
+ private Long salesLedgerId;
+
+ @ApiModelProperty("鐢熶骇璁″垝ID鍒楄〃锛屾牸寮忥細[1,2,3]")
+ private String productionPlanIds;
+
+ @ApiModelProperty("浜у搧瑙勬牸id")
+ private Long productModelId;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟鍙�")
+ private String npsNo;
+
+ @ApiModelProperty("褰曞叆鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("宸ヨ壓璺嚎id")
+ private Long technologyRoutingId;
+
+ @ApiModelProperty("闇�姹傛暟閲�")
+ private BigDecimal quantity;
+
+ @ApiModelProperty("瀹屾垚鏁伴噺")
+ private BigDecimal completeQuantity;
+
+ @ApiModelProperty("寮�濮嬫棩鏈�")
+ private LocalDateTime startTime;
+
+ @ApiModelProperty("缁撴潫鏃ユ湡")
+ private LocalDateTime endTime;
+
+ @ApiModelProperty("閿�鍞骇鍝佽鏍糹d")
+ private Integer saleLedgerProductId;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrderBom.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrderBom.java
new file mode 100644
index 0000000..53cbb17
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrderBom.java
@@ -0,0 +1,63 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟BOM
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_order_bom")
+@ApiModel(value = "ProductionOrderBom瀵硅薄", description = "鐢熶骇璁㈠崟BOM")
+public class ProductionOrderBom implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鐖惰妭鐐笽D")
+ private Long parentId;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟id")
+ private Long productionOrderId;
+
+ @ApiModelProperty("浜у搧瑙勬牸id")
+ private Long productModelId;
+
+ @ApiModelProperty("宸ュ簭id")
+ private Long technologyOperationId;
+
+ @ApiModelProperty("鍗曚綅浜у嚭闇�瑕佹暟閲�")
+ private BigDecimal unitQuantity;
+
+ @ApiModelProperty("闇�姹傛暟閲�")
+ private BigDecimal demandedQuantity;
+
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("bom鐨刬d")
+ private Long bomId;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrderPick.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrderPick.java
new file mode 100644
index 0000000..d0fcc28
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrderPick.java
@@ -0,0 +1,62 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 璁㈠崟棰嗘枡绾胯竟浠�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_order_pick")
+@ApiModel(value = "ProductionOrderPick瀵硅薄", description = "璁㈠崟棰嗘枡绾胯竟浠�")
+public class ProductionOrderPick implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("浜у搧瑙勬牸id")
+ private Integer productModelId;
+
+ @ApiModelProperty("鏁伴噺")
+ private BigDecimal quantity;
+
+ @ApiModelProperty("鎵瑰彿")
+ private String batchNo;
+
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟id")
+ private Long productionOrderId;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrderPickRecord.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrderPickRecord.java
new file mode 100644
index 0000000..b4fa6a8
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrderPickRecord.java
@@ -0,0 +1,78 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 绾胯竟浠撳嚭鍏ュ簱璁板綍
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_order_pick_record")
+@ApiModel(value = "ProductionOrderPickRecord瀵硅薄", description = "绾胯竟浠撳嚭鍏ュ簱璁板綍")
+public class ProductionOrderPickRecord implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鍏宠仈棰嗘枡鍗昳d锛坧roduction_order_pick.id锛�")
+ private Long pickId;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟id")
+ private Long productionOrderId;
+
+ @ApiModelProperty("鐢熶骇宸ュ崟id")
+ private Long productionOperationTaskId;
+
+ @ApiModelProperty("浜у搧瑙勬牸id")
+ private Integer productModelId;
+
+ @ApiModelProperty("鎵瑰彿")
+ private String batchNo;
+
+ @ApiModelProperty("棰嗘枡鏁伴噺")
+ private BigDecimal pickQuantity;
+
+ @ApiModelProperty("棰嗘枡鍓嶆暟閲�")
+ private BigDecimal beforeQuantity;
+
+ @ApiModelProperty("棰嗘枡鍚庡墿浣欐暟閲�")
+ private BigDecimal afterQuantity;
+
+ @ApiModelProperty("棰嗘枡绫诲瀷锛�1姝e父棰嗘枡 2琛ユ枡")
+ private Byte pickType;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrderRouting.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrderRouting.java
new file mode 100644
index 0000000..a74d7ad
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrderRouting.java
@@ -0,0 +1,64 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_order_routing")
+@ApiModel(value = "ProductionOrderRouting瀵硅薄", description = "鐢熶骇璁㈠崟宸ヨ壓璺嚎琛�")
+public class ProductionOrderRouting implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("浜у搧瑙勬牸id")
+ private Long productModelId;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟id")
+ private Long productionOrderId;
+
+ @ApiModelProperty("鎻忚堪")
+ private String description;
+
+ @ApiModelProperty("褰曞叆鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("宸ヨ壓璺嚎id")
+ private Long technologyRoutingId;
+
+ @ApiModelProperty("宸ヨ壓璺嚎缂栫爜")
+ private String processRouteCode;
+
+ @ApiModelProperty("鍏宠仈bom鐨刬d")
+ private Integer bomId;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java
new file mode 100644
index 0000000..5d2bc57
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java
@@ -0,0 +1,64 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_order_routing_operation")
+@ApiModel(value = "ProductionOrderRoutingOperation瀵硅薄", description = "鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭琛�")
+public class ProductionOrderRoutingOperation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟id")
+ private Long productionOrderId;
+
+ @ApiModelProperty("宸ヨ壓璺嚎宸ュ簭琛╥d")
+ private Long technologyRoutingOperationId;
+
+ @ApiModelProperty("宸ヨ壓璺嚎id")
+ private Long technologyRoutingId;
+
+ @ApiModelProperty("浜у搧瑙勬牸id")
+ private Long productModelId;
+
+ @ApiModelProperty("褰曞叆鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鎷栧姩鎺掑簭")
+ private Integer dragSort;
+
+ @ApiModelProperty("鏄惁璐ㄦ宸ュ簭")
+ private Boolean isQuality;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperationParam.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperationParam.java
new file mode 100644
index 0000000..6cc4910
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperationParam.java
@@ -0,0 +1,93 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
+@TableName("production_order_routing_operation_param")
+@ApiModel(value = "ProductionOrderRoutingOperationParam瀵硅薄", description = "鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟琛�")
+public class ProductionOrderRoutingOperationParam implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鐢熶骇璁㈠崟id")
+ private Long productionOrderId;
+
+ @ApiModelProperty("宸ヨ壓璺嚎宸ュ簭鍙傛暟琛╥d")
+ private Long technologyRoutingOperationParamId;
+
+ @ApiModelProperty("鍙傛暟缂栫爜(鍞竴鏍囪瘑)")
+ private String paramCode;
+
+ @ApiModelProperty("鍙傛暟鍚嶇О")
+ private String paramName;
+
+ @ApiModelProperty("鍙傛暟绫诲瀷(1鏁板瓧 2鏂囨湰 3涓嬫媺閫夋嫨 4鏃堕棿)")
+ private Byte paramType;
+
+ @ApiModelProperty("鍙傛暟鏍煎紡")
+ private String paramFormat;
+
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("鏄惁蹇呭~")
+ private Byte isRequired;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private String createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private String updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("閮ㄩ棬ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+
+ @ApiModelProperty("鍩虹鍙傛暟ID")
+ private Long paramId;
+
+ @ApiModelProperty("宸ュ簭id")
+ private Long technologyOperationId;
+
+ @ApiModelProperty("宸ュ簭鍙傛暟ID")
+ private Long technologyOperationParamId;
+
+ @ApiModelProperty("宸ヨ壓璺嚎宸ュ簭ID")
+ private Long technologyRoutingOperationId;
+
+ @ApiModelProperty("鏍囧噯鍊�")
+ private String standardValue;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionPlan.java b/src/main/java/com/ruoyi/production/pojo/ProductionPlan.java
new file mode 100644
index 0000000..6ffa6db
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionPlan.java
@@ -0,0 +1,79 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鐢熶骇璁″垝琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 02:11:10
+ */
+@Getter
+@Setter
+@TableName("production_plan")
+@ApiModel(value = "ProductionPlan瀵硅薄", description = "鐢熶骇璁″垝琛�")
+public class ProductionPlan implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("涓荤敓浜ц鍒掑彿")
+ private String mpsNo;
+
+ @ApiModelProperty("闇�姹傛棩鏈�")
+ private LocalDateTime requiredDate;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
+
+ @ApiModelProperty("浜у搧鍨嬪彿id")
+ private Long productModelId;
+
+ @ApiModelProperty("闇�姹傛暟閲�")
+ private BigDecimal qtyRequired;
+
+ @ApiModelProperty("鐘舵��")
+ @TableLogic
+ private String state;
+
+ @ApiModelProperty("鏄惁涓嬪彂鍒堕�犺鍗�")
+ private Boolean issued;
+
+ @ApiModelProperty("鏉ユ簮")
+ private String source;
+
+ @ApiModelProperty("瀹℃牳鐘舵��")
+ private String isAudit;
+
+ @ApiModelProperty("鎵胯鏃ユ湡")
+ private LocalDateTime promisedDeliveryDate;
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java
index 52e8e04..3d8285a 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java
@@ -1,40 +1,57 @@
package com.ruoyi.production.pojo;
import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
-@Data
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐鎶曞叆琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
@TableName("production_product_input")
-public class ProductionProductInput {
+@ApiModel(value = "ProductionProductInput瀵硅薄", description = "鐢熶骇鎶ュ伐鎶曞叆琛�")
+public class ProductionProductInput implements Serializable {
- @TableId(type = IdType.AUTO)
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("id")
+ @TableId(value = "id", type = IdType.AUTO)
private Long id;
- @ApiModelProperty(value = "鎶ュ伐id")
- private Long productMainId;
+ @ApiModelProperty("鎶曞叆鏁伴噺")
+ private BigDecimal inputQuantity;
- @ApiModelProperty(value = "浜у搧id")
+ @ApiModelProperty("鎶ュ伐琛╥d")
+ private Long productionProductMainId;
+
+ @ApiModelProperty("浜у搧鍨嬪彿id")
private Long productModelId;
- @ApiModelProperty(value = "鏁伴噺")
- private BigDecimal quantity;
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("褰曞叆鏃堕棿")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
- @ApiModelProperty(value = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
+ @ApiModelProperty("鏇存柊鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
index a0301a0..449c15f 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
@@ -1,61 +1,57 @@
package com.ruoyi.production.pojo;
import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Getter;
+import lombok.Setter;
+import java.io.Serializable;
import java.time.LocalDateTime;
-@Data
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
@TableName("production_product_main")
-public class ProductionProductMain {
+@ApiModel(value = "ProductionProductMain瀵硅薄", description = "鐢熶骇鎶ュ伐琛�")
+public class ProductionProductMain implements Serializable {
- @TableId(type = IdType.AUTO)
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("id")
+ @TableId(value = "id", type = IdType.AUTO)
private Long id;
- @ApiModelProperty(value = "鎶ュ伐鍗曞彿")
- @Excel(name = "鎶ュ伐鍗曞彿")
+ @ApiModelProperty("鎶ュ伐鍗曞彿")
private String productNo;
- @ApiModelProperty(value = "鎶ュ伐浜哄憳id")
- private Long userId;
+ @ApiModelProperty("宸ュ崟id")
+ private Long productionOperationTaskId;
- @ApiModelProperty(value = "鎶ュ伐浜哄憳")
- private String userName;
-
- @ApiModelProperty(value = "鐢熶骇椤圭洰id")
- private Long productProcessRouteItemId;
-
- @ApiModelProperty(value = "宸ュ崟id")
- private Long workOrderId;
-
- @ApiModelProperty(value = "鎶ュ伐鐘舵��")
- private Integer status;
-
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @Excel(name = "鍒涘缓鏃堕棿")
- private LocalDateTime createTime;
-
- @ApiModelProperty(value = "鏇存柊鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime updateTime;
-
- @ApiModelProperty(value = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
+ @ApiModelProperty("閮ㄩ棬ID")
@TableField(fill = FieldFill.INSERT)
private Long deptId;
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("褰曞叆鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
index 3d1a032..32cc976 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
@@ -1,43 +1,59 @@
package com.ruoyi.production.pojo;
import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
-@Data
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐浜у嚭琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Getter
+@Setter
@TableName("production_product_output")
-public class ProductionProductOutput {
+@ApiModel(value = "ProductionProductOutput瀵硅薄", description = "鐢熶骇鎶ュ伐浜у嚭琛�")
+public class ProductionProductOutput implements Serializable {
- @TableId(type = IdType.AUTO)
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
private Long id;
- @ApiModelProperty(value = "鎶ュ伐id")
- private Long productMainId;
+ @ApiModelProperty("鎶ュ伐鍗昳d")
+ private Long productionProductMainId;
- @ApiModelProperty(value = "浜у搧id")
+ @ApiModelProperty("浜у搧瑙勬牸id")
private Long productModelId;
- @ApiModelProperty(value = "鎶ュ伐鏁伴噺(鎬绘暟閲�)")
+ @ApiModelProperty("鎶ュ伐鏁伴噺")
private BigDecimal quantity;
- @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ApiModelProperty("鎶ュ簾鏁伴噺")
+ private BigDecimal scrapQty;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍒涘缓浜篒D")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("褰曞叆鏃堕棿")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
- @ApiModelProperty(value = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @ApiModelProperty(value = "鎶ュ簾鏁伴噺")
- private BigDecimal scrapQty;
- @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
+ @ApiModelProperty("鏇存柊鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
}
diff --git a/src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java b/src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java
deleted file mode 100644
index 3ed3caf..0000000
--- a/src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Builder;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-/**
- * @author :yys
- * @date : 2025/7/8 13:24
- */
-@TableName("sales_ledger_production_accounting")
-@Data
-@Builder
-public class SalesLedgerProductionAccounting {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 鎶ュ伐琛╥d
- */
- private Long productMainId;
-
- /**
- * 鐢熶骇浜篿d
- */
- private Long schedulingUserId;
-
- /**
- * 鐢熶骇浜哄悕绉�
- */
- private String schedulingUserName;
-
- /**
- * 鐢熶骇鏁伴噺
- */
- private BigDecimal finishedNum;
-
- /**
- * 宸ユ椂瀹氶
- */
- private BigDecimal workHours;
-
- /**
- * 宸ュ簭
- */
- private String process;
- /**
- * 鐢熶骇鏃ユ湡
- */
- private LocalDate schedulingDate;
-
- /**
- * 鍒涘缓鑰�
- */
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- /**
- * 淇敼鑰�
- */
- @TableField(fill = FieldFill.UPDATE)
- private Integer updateUser;
-
- /**
- * 淇敼鏃堕棿
- */
- @TableField(fill = FieldFill.UPDATE)
- private LocalDateTime updateTime;
-
- /**
- * 绉熸埛ID
- */
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
-
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/SalesLedgerScheduling.java b/src/main/java/com/ruoyi/production/pojo/SalesLedgerScheduling.java
deleted file mode 100644
index 8fb8a76..0000000
--- a/src/main/java/com/ruoyi/production/pojo/SalesLedgerScheduling.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import lombok.Builder;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-/**
- * @author :yys
- * @date : 2025/7/8 13:24
- */
-@TableName("sales_ledger_scheduling")
-@Data
-@Builder
-public class SalesLedgerScheduling {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 閿�鍞彴璐d
- */
- private Long salesLedgerId;
-
- /**
- * 閿�鍞骇鍝乮d
- */
- private Long salesLedgerProductId;
-
- /**
- * 娲惧伐浜篿d
- */
- private Long schedulingUserId;
-
- /**
- * 鐢熶骇鐐掓満
- */
- private String speculativeTradingName;
-
- /**
- * 浜х嚎
- */
- private String productionLine;
-
- /**
- * 娲惧伐浜哄悕绉�
- */
- private String schedulingUserName;
-
-
- /**
- * 鎺掍骇鏁伴噺
- */
- private BigDecimal schedulingNum;
-
- /**
- * 宸叉帓浜ф暟閲�
- */
- private BigDecimal finishedNum;
- /**
- * 娲惧伐鏃ユ湡
- */
- private LocalDate schedulingDate;
-
- /**
- * 鎺掍骇鐘舵�侊紙1-寰呮帓浜� 2-鎺掍骇涓� 3-宸叉帓浜э級
- */
- private Integer status;
-
- /**
- * 鍒涘缓鑰�
- */
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- /**
- * 淇敼鑰�
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Integer updateUser;
-
- /**
- * 淇敼鏃堕棿
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- /**
- * 绉熸埛ID
- */
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java b/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
deleted file mode 100644
index b251afc..0000000
--- a/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Builder;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-/**
- * @author :yys
- * @date : 2025/7/8 13:24
- */
-@TableName("sales_ledger_work")
-@Data
-@Builder
-public class SalesLedgerWork {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 閿�鍞帓浜ц〃id
- */
- private Long salesLedgerSchedulingId;
-
- /**
- * 閿�鍞彴璐d
- */
- private Long salesLedgerId;
-
- /**
- * 閿�鍞骇鍝乮d
- */
- private Long salesLedgerProductId;
-
- /**
- * 鎺掍骇浜篿d
- */
- private Long schedulingUserId;
-
- /**
- * 鎺掍骇浜哄悕绉�
- */
- private String schedulingUserName;
-
-
- /**
- * 鎺掍骇鏁伴噺
- */
- private BigDecimal schedulingNum;
-
- /**
- * 鐢熶骇鏁伴噺
- */
- private BigDecimal finishedNum;
-
- /**
- * 宸ユ椂瀹氶
- */
- private BigDecimal workHours;
-
- /**
- * 宸ュ簭
- */
- private String process;
-
-
- /**
- * 浜х嚎
- */
- private String productionLine;
- /**
- * 鎺掍骇鏃ユ湡
- */
- private LocalDate schedulingDate;
-
- /**
- * 鎶ュ伐鐘舵�侊紙1-寰呯敓浜� 2-鐢熶骇涓� 3-宸叉姤宸ワ級
- */
- private Integer status;
-
- /**
- * 澶囨敞
- */
- private String remark;
-
- /**
- * 鎹熻��
- */
- private String loss;
-
- /**
- * 鍙e懗鍒嗙被
- */
- private String type;
-
- /**
- * 棰嗙敤
- */
- private String receive;
-
- /**
- * 鍒涘缓鑰�
- */
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- /**
- * 淇敼鑰�
- */
- @TableField(fill = FieldFill.UPDATE)
- private Integer updateUser;
-
- /**
- * 淇敼鏃堕棿
- */
- @TableField(fill = FieldFill.UPDATE)
- private LocalDateTime updateTime;
-
- /**
- * 绉熸埛ID
- */
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-}
diff --git a/src/main/java/com/ruoyi/production/pojo/SpeculativeTradingInfo.java b/src/main/java/com/ruoyi/production/pojo/SpeculativeTradingInfo.java
deleted file mode 100644
index 8334755..0000000
--- a/src/main/java/com/ruoyi/production/pojo/SpeculativeTradingInfo.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.ruoyi.production.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
-/**
- * @author :yys
- * @date : 2025/11/11 15:38
- */
-@TableName("speculative_trading_info")
-@Data
-public class SpeculativeTradingInfo {
-
- private static final long serialVersionUID = 1L;
-
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 鐐掓満鍚嶇О
- */
- private String name;
-
- /**
- * 鐐掓満宸ヤ綔閲�(鍗曚綅kg)
- */
- private BigDecimal workLoad;
-
-
- /**
- * 鎺掑簭
- */
- private Integer sort;
-
- /**
- * 鐐掓満姝e湪宸ヤ綔閲�(鍗曚綅kg)
- */
- @TableField(exist = false)
- private BigDecimal currentWorkLoad;
-
- /**
- * 鐐掓満绌轰綑宸ヤ綔閲�(鍗曚綅kg)
- */
- @TableField(exist = false)
- private BigDecimal vacant;
-
- /**
- * 鍒涘缓鑰�
- */
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- /**
- * 淇敼鑰�
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Integer updateUser;
-
- /**
- * 淇敼鏃堕棿
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- /**
- * 绉熸埛ID
- */
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
-
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProcessRouteItemService.java b/src/main/java/com/ruoyi/production/service/ProcessRouteItemService.java
deleted file mode 100644
index 3299048..0000000
--- a/src/main/java/com/ruoyi/production/service/ProcessRouteItemService.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProcessRouteItemDto;
-import com.ruoyi.production.pojo.ProcessRouteItem;
-
-import java.util.List;
-
-public interface ProcessRouteItemService extends IService<ProcessRouteItem> {
- List<ProcessRouteItemDto> listProcessRouteItemDto( ProcessRouteItemDto processRouteItemDto);
-
- int sort(ProcessRouteItem processRouteItem);
-
- String batchDelete(Long id);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProcessRouteService.java b/src/main/java/com/ruoyi/production/service/ProcessRouteService.java
deleted file mode 100644
index 6b408cf..0000000
--- a/src/main/java/com/ruoyi/production/service/ProcessRouteService.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProcessRouteDto;
-import com.ruoyi.production.pojo.ProcessRoute;
-import io.swagger.models.auth.In;
-
-import java.util.List;
-
-public interface ProcessRouteService extends IService<ProcessRoute> {
-
- IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto);
-
- Integer saveProcessRoute(ProcessRoute processRoute);
-
- int batchDelete(List<Long> ids);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductBomService.java b/src/main/java/com/ruoyi/production/service/ProductBomService.java
deleted file mode 100644
index 450acbf..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductBomService.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.production.dto.ProductBomDto;
-import com.ruoyi.production.pojo.ProductBom;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * <p>
- * BOM涓昏〃 鏈嶅姟绫�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 09:59:27
- */
-public interface ProductBomService extends IService<ProductBom> {
-
- IPage<ProductBomDto> listPage(Page page, ProductBomDto productBomDto);
-
- AjaxResult add(ProductBom productBom);
-
- AjaxResult uploadBom(MultipartFile file);
-
- AjaxResult update(ProductBom productBom);
-
- void exportBom(HttpServletResponse response, Integer bomId);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductOrderMaterialService.java b/src/main/java/com/ruoyi/production/service/ProductOrderMaterialService.java
deleted file mode 100644
index d0b7455..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductOrderMaterialService.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProductOrderMaterialDto;
-import com.ruoyi.production.pojo.ProductOrderMaterial;
-
-import java.util.List;
-
-public interface ProductOrderMaterialService extends IService<ProductOrderMaterial> {
- IPage<ProductOrderMaterial> listPage(Page<ProductOrderMaterial> page, ProductOrderMaterial productOrderMaterial);
-
- List<ProductOrderMaterialDto> pickMaterial(ProductOrderMaterialDto productOrderMaterialDto);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductOrderService.java b/src/main/java/com/ruoyi/production/service/ProductOrderService.java
deleted file mode 100644
index 5a714a6..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductOrderService.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProductBomDto;
-import com.ruoyi.production.dto.ProductOrderDto;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.pojo.ProcessRoute;
-import com.ruoyi.production.pojo.ProductOrder;
-
-import java.util.List;
-
-
-public interface ProductOrderService extends IService<ProductOrder> {
-
- IPage<ProductOrderDto> pageProductOrder(Page page, ProductOrderDto productOrder);
-
- int bindingRoute(ProductOrder productOrder);
-
- List<ProcessRoute> listProcessRoute(Long productModelId);
-
- List<ProductStructureDto> listProcessBom(Long orderId);
-
- Boolean addProductOrder(ProductOrder productOrder);
-
- Boolean delete(Long[] id);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductProcessRouteItemService.java b/src/main/java/com/ruoyi/production/service/ProductProcessRouteItemService.java
deleted file mode 100644
index c37eea1..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductProcessRouteItemService.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductProcessRouteItemDto;
-import com.ruoyi.production.pojo.ProductProcessRouteItem;
-
-import java.util.List;
-
-public interface ProductProcessRouteItemService extends IService<ProductProcessRouteItem> {
- List<ProductProcessRouteItemDto> listItem(Long orderId);
-
- R deleteRouteItem(Long id);
-
- R addRouteItem(ProductProcessRouteItem productProcessRouteItem);
-
- int sortRouteItem(ProductProcessRouteItem productProcessRouteItem);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductProcessRouteService.java b/src/main/java/com/ruoyi/production/service/ProductProcessRouteService.java
deleted file mode 100644
index 238aa1e..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductProcessRouteService.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.ruoyi.production.dto.ProcessRouteDto;
-import com.ruoyi.production.pojo.ProductProcessRoute;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
- */
-public interface ProductProcessRouteService extends IService<ProductProcessRoute> {
-
- ProcessRouteDto listMain(Long orderId);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductProcessService.java b/src/main/java/com/ruoyi/production/service/ProductProcessService.java
deleted file mode 100644
index 8b61bdd..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductProcessService.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.device.pojo.DeviceRepair;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.production.dto.*;
-import com.ruoyi.production.pojo.ProductProcess;
-import com.ruoyi.production.pojo.SalesLedgerScheduling;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:39
- */
-public interface ProductProcessService extends IService<ProductProcess> {
- IPage<ProductProcessDto> listPage(Page page, ProductProcessDto productProcessDto);
-
- AjaxResult add(ProductProcessDto productProcessDto);
-
- AjaxResult importData(MultipartFile file);
-
- String batchDelete(List<Integer> ids);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductStructureService.java b/src/main/java/com/ruoyi/production/service/ProductStructureService.java
deleted file mode 100644
index ebdddb1..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductStructureService.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.basic.dto.ProductModelDto;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.pojo.ProductStructure;
-
-import java.util.List;
-
-public interface ProductStructureService extends IService<ProductStructure> {
-
-
- Boolean addProductStructureDto(ProductStructureDto productStructureDto);
-
- List<ProductStructureDto> listBybomId(Integer bomId);
-
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductWorkOrderFileService.java b/src/main/java/com/ruoyi/production/service/ProductWorkOrderFileService.java
deleted file mode 100644
index 0df0a8c..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductWorkOrderFileService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.ruoyi.production.pojo.ProductWorkOrderFile;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- * 鐢熶骇宸ュ崟闄勪欢琛� 鏈嶅姟绫�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-23 03:28:32
- */
-public interface ProductWorkOrderFileService extends IService<ProductWorkOrderFile> {
-
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java b/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
deleted file mode 100644
index 8ef28e6..0000000
--- a/src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProductWorkOrderDto;
-import com.ruoyi.production.pojo.ProductWorkOrder;
-
-import javax.servlet.http.HttpServletResponse;
-
-public interface ProductWorkOrderService extends IService<ProductWorkOrder>{
-
- IPage<ProductWorkOrderDto> listPage(Page<ProductWorkOrderDto> page, ProductWorkOrderDto productWorkOrder);
-
- int updateProductWorkOrder(ProductWorkOrderDto productWorkOrderDto);
-
- void down(HttpServletResponse response, ProductWorkOrder productWorkOrder);
-}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionAccountService.java b/src/main/java/com/ruoyi/production/service/ProductionAccountService.java
new file mode 100644
index 0000000..6c5ee53
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionAccountService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionAccount;
+
+/**
+ * <p>
+ * 鐢熶骇鏍哥畻琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionAccountService extends IService<ProductionAccount> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionBomStructureService.java b/src/main/java/com/ruoyi/production/service/ProductionBomStructureService.java
new file mode 100644
index 0000000..f94ddec
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionBomStructureService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionBomStructure;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟BOM浜у搧缁撴瀯 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionBomStructureService extends IService<ProductionBomStructure> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOperationMainParamService.java b/src/main/java/com/ruoyi/production/service/ProductionOperationMainParamService.java
new file mode 100644
index 0000000..d05f4e2
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOperationMainParamService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOperationMainParam;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟鎶ュ伐鍙傛暟琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOperationMainParamService extends IService<ProductionOperationMainParam> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOperationTaskService.java b/src/main/java/com/ruoyi/production/service/ProductionOperationTaskService.java
new file mode 100644
index 0000000..90570be
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOperationTaskService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOperationTask;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOperationTaskService extends IService<ProductionOperationTask> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOrderBomService.java b/src/main/java/com/ruoyi/production/service/ProductionOrderBomService.java
new file mode 100644
index 0000000..da4f9fc
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOrderBomService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOrderBom;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟BOM 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOrderBomService extends IService<ProductionOrderBom> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOrderPickRecordService.java b/src/main/java/com/ruoyi/production/service/ProductionOrderPickRecordService.java
new file mode 100644
index 0000000..4787929
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOrderPickRecordService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOrderPickRecord;
+
+/**
+ * <p>
+ * 绾胯竟浠撳嚭鍏ュ簱璁板綍 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOrderPickRecordService extends IService<ProductionOrderPickRecord> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOrderPickService.java b/src/main/java/com/ruoyi/production/service/ProductionOrderPickService.java
new file mode 100644
index 0000000..acffc16
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOrderPickService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOrderPick;
+
+/**
+ * <p>
+ * 璁㈠崟棰嗘枡绾胯竟浠� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOrderPickService extends IService<ProductionOrderPick> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingOperationParamService.java b/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingOperationParamService.java
new file mode 100644
index 0000000..1ff0e5b
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingOperationParamService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOrderRoutingOperationParam;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOrderRoutingOperationParamService extends IService<ProductionOrderRoutingOperationParam> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingOperationService.java b/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingOperationService.java
new file mode 100644
index 0000000..ed64948
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingOperationService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOrderRoutingOperation;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOrderRoutingOperationService extends IService<ProductionOrderRoutingOperation> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingService.java b/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingService.java
new file mode 100644
index 0000000..54668a4
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOrderRoutingService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOrderRouting;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOrderRoutingService extends IService<ProductionOrderRouting> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionOrderService.java b/src/main/java/com/ruoyi/production/service/ProductionOrderService.java
new file mode 100644
index 0000000..a3e7fd5
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionOrderService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductionOrder;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+public interface ProductionOrderService extends IService<ProductionOrder> {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionPlanService.java b/src/main/java/com/ruoyi/production/service/ProductionPlanService.java
new file mode 100644
index 0000000..f4b871d
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductionPlanService.java
@@ -0,0 +1,66 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.bean.dto.ProductionPlanDto;
+import com.ruoyi.production.bean.vo.ProductionPlanVo;
+import com.ruoyi.production.pojo.ProductionPlan;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * <p>
+ * 鐢熶骇璁″垝琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 02:11:10
+ */
+public interface ProductionPlanService extends IService<ProductionPlan> {
+
+ IPage<ProductionPlanVo> listPage(Page page, ProductionPlanDto productionPlanDto);
+
+ /**
+ * 鎵嬪姩鍚屾
+ */
+ void loadProdData();
+
+ /**
+ * 瀹氭椂鍚屾
+ */
+ void syncProdDataJob();
+
+ /**
+ * 鍚堝苟鐢熶骇璁″垝
+ */
+ boolean combine(ProductionPlanDto productionPlanDto);
+
+ /**
+ * 鍒涘缓鐢熶骇璁″垝
+ */
+ boolean add(ProductionPlanDto productionPlanDto);
+
+ /**
+ * 鏇存柊鐢熶骇璁″垝
+ */
+ boolean update(ProductionPlanDto productionPlanDto);
+
+ /**
+ * 鍒犻櫎鐢熶骇璁″垝
+ */
+ boolean delete(List<Long> ids);
+
+ /**
+ * 瀵煎叆鏁版嵁
+ */
+ void importProdData(MultipartFile file);
+
+ /**
+ * 瀵煎嚭鏁版嵁
+ */
+ void exportProdData(HttpServletResponse response, List<Long> ids);
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionProductInputService.java b/src/main/java/com/ruoyi/production/service/ProductionProductInputService.java
index 1af1772..7ce4410 100644
--- a/src/main/java/com/ruoyi/production/service/ProductionProductInputService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductionProductInputService.java
@@ -1,11 +1,16 @@
package com.ruoyi.production.service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProductionProductInputDto;
import com.ruoyi.production.pojo.ProductionProductInput;
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐鎶曞叆琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
public interface ProductionProductInputService extends IService<ProductionProductInput> {
- IPage<ProductionProductInputDto> listPageProductionProductInputDto(Page page, ProductionProductInputDto productionProductInputDto);
+
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
index 72d868c..9a4adbf 100644
--- a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
@@ -1,20 +1,16 @@
package com.ruoyi.production.service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProductionProductMainDto;
import com.ruoyi.production.pojo.ProductionProductMain;
-import java.util.ArrayList;
-import java.util.List;
-
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
public interface ProductionProductMainService extends IService<ProductionProductMain> {
- IPage<ProductionProductMainDto> listPageProductionProductMainDto(Page page, ProductionProductMainDto productionProductMainDto);
- Boolean addProductMain(ProductionProductMainDto productionProductMainDto);
-
- Boolean removeProductMain(Long id);
-
- ArrayList<Long> listMain(List<Long> idList);
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionProductOutputService.java b/src/main/java/com/ruoyi/production/service/ProductionProductOutputService.java
index dea72b5..2a51d2e 100644
--- a/src/main/java/com/ruoyi/production/service/ProductionProductOutputService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductionProductOutputService.java
@@ -1,11 +1,16 @@
package com.ruoyi.production.service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProductionProductOutputDto;
import com.ruoyi.production.pojo.ProductionProductOutput;
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐浜у嚭琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
public interface ProductionProductOutputService extends IService<ProductionProductOutput> {
- IPage<ProductionProductOutputDto> listPageProductionProductOutputDto(Page page, ProductionProductOutputDto productionProductOutputDto);
+
}
diff --git a/src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java b/src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java
deleted file mode 100644
index 4ebd01f..0000000
--- a/src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProductionProductMainDto;
-import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
-import com.ruoyi.production.dto.UserAccountDto;
-import com.ruoyi.production.dto.UserProductionAccountingDto;
-import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:39
- */
-public interface SalesLedgerProductionAccountingService extends IService<SalesLedgerProductionAccounting> {
-
-
- IPage<SalesLedgerProductionAccountingDto> listPage(Page page, SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto);
-
-
- IPage<SalesLedgerProductionAccountingDto> pageProductionAccounting(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page);
-
- IPage<ProductionProductMainDto> listProductionDetails(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page);
-
- UserAccountDto getByUserId(UserProductionAccountingDto userProductionAccountingDto);
-}
diff --git a/src/main/java/com/ruoyi/production/service/SalesLedgerSchedulingService.java b/src/main/java/com/ruoyi/production/service/SalesLedgerSchedulingService.java
deleted file mode 100644
index 813553a..0000000
--- a/src/main/java/com/ruoyi/production/service/SalesLedgerSchedulingService.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.production.dto.ProcessSchedulingDto;
-import com.ruoyi.production.dto.ProductionDispatchAddDto;
-import com.ruoyi.production.dto.SalesLedgerSchedulingDto;
-import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto;
-import com.ruoyi.production.pojo.SalesLedgerScheduling;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:39
- */
-public interface SalesLedgerSchedulingService extends IService<SalesLedgerScheduling> {
-
- IPage<SalesLedgerSchedulingDto> listPage(Page page, SalesLedgerSchedulingDto salesLedgerSchedulingDto);
-
- void export(HttpServletResponse response);
-
- String productionDispatch(List<ProductionDispatchAddDto> productionDispatchAddDto);
-
- IPage<SalesLedgerSchedulingProcessDto> listPageProcess(Page page, SalesLedgerSchedulingProcessDto salesLedgerSchedulingDto);
-
- int productionDispatchDelete(List<Long> ids);
-
- int processScheduling(List<ProcessSchedulingDto> processSchedulingDto);
-
- void exportOne(HttpServletResponse response);
-}
diff --git a/src/main/java/com/ruoyi/production/service/SalesLedgerWorkService.java b/src/main/java/com/ruoyi/production/service/SalesLedgerWorkService.java
deleted file mode 100644
index b219515..0000000
--- a/src/main/java/com/ruoyi/production/service/SalesLedgerWorkService.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.ruoyi.production.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.production.dto.ProductionReportDto;
-import com.ruoyi.production.dto.SalesLedgerWorkDto;
-import com.ruoyi.production.pojo.SalesLedgerWork;
-
-import java.util.List;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:38
- */
-public interface SalesLedgerWorkService extends IService<SalesLedgerWork> {
-
- IPage<SalesLedgerWorkDto> listPage(Page page, SalesLedgerWorkDto salesLedgerWorkDto);
-
- int productionReport(ProductionReportDto productionReportDto);
-
- int productionReportUpdate(ProductionReportDto productionReportDto);
-
- List<ProductionReportDto> getList(Long id);
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
deleted file mode 100644
index 5614366..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.production.dto.ProcessRouteItemDto;
-import com.ruoyi.production.mapper.ProcessRouteItemMapper;
-import com.ruoyi.production.pojo.ProcessRouteItem;
-import com.ruoyi.production.service.ProcessRouteItemService;
-import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-@Service
-@AllArgsConstructor
-@Transactional(rollbackFor = Exception.class)
-public class ProcessRouteItemServiceImpl extends ServiceImpl<ProcessRouteItemMapper, ProcessRouteItem> implements ProcessRouteItemService {
-
- @Autowired
- private ProcessRouteItemMapper processRouteItemMapper;
-
- @Override
- public List<ProcessRouteItemDto> listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) {
- return processRouteItemMapper.listProcessRouteItemDto( processRouteItemDto);
- }
-
- //鎺掑簭
- @Override
- public int sort(ProcessRouteItem processRouteItem) {
- //鏌ヨ琚敼鍔ㄧ殑杩欐潯鏁版嵁
- ProcessRouteItem oldProcessRouteItem = processRouteItemMapper.selectById(processRouteItem.getId());
- //鏌ヨ璇ュ伐鑹鸿矾绾跨殑鎵�鏈夊伐搴忓苟鎸夌収椤哄簭鎺掑簭
- List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(Wrappers.<ProcessRouteItem>lambdaQuery()
- .eq(ProcessRouteItem::getRouteId, oldProcessRouteItem.getRouteId())
- .orderByAsc(ProcessRouteItem::getDragSort));
- // 鑾峰彇鐩爣浣嶇疆锛堢Щ鍔ㄥ埌绗嚑涓箣鍚庯級
- Integer targetPosition = processRouteItem.getDragSort();
- if (targetPosition != null && targetPosition >= 0) {
- // 绉诲姩鍏冪礌鍒版柊鐨勪綅缃�
- processRouteItems.remove(oldProcessRouteItem);
- processRouteItems.add(targetPosition-1, oldProcessRouteItem);
- // 鏇存柊鎵�鏈夊彈褰卞搷鐨勬帓搴忓瓧娈�
- for (int i = 0; i < processRouteItems.size(); i++) {
- ProcessRouteItem item = processRouteItems.get(i);
- if (!item.getId().equals(oldProcessRouteItem.getId())) {
- // 妫�鏌ユ槸鍚﹂渶瑕佹洿鏂版帓搴忓��
- if (item.getDragSort() != i+1) {
- item.setDragSort(i+1);
- processRouteItemMapper.updateById(item);
- }
- } else {
- // 鏇存柊鍘熻褰曠殑鏂版帓搴忎綅缃�
- oldProcessRouteItem.setDragSort(targetPosition);
- processRouteItemMapper.updateById(oldProcessRouteItem);
- }
- }
- return 1;
- }
- return 0;
- }
-
- @Override
- public String batchDelete(Long id) {
- // 鏌ヨ瑕佸垹闄ょ殑鏁版嵁
- ProcessRouteItem deleteProcessRouteItem = processRouteItemMapper.selectById(id);
- if (deleteProcessRouteItem == null) {
- return "鍒犻櫎澶辫触锛屾湭鎵惧埌瀵瑰簲鏁版嵁";
- }
- Long routeId = deleteProcessRouteItem.getRouteId();
- // 鍒犻櫎鎸囧畾鏁版嵁
- processRouteItemMapper.deleteById(id);
- // 鏌ヨ璇ュ伐鑹鸿矾绾跨殑鎵�鏈夊伐搴忓苟鎸夌収椤哄簭鎺掑簭
- List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(Wrappers.<ProcessRouteItem>lambdaQuery()
- .eq(ProcessRouteItem::getRouteId, routeId)
- .orderByAsc(ProcessRouteItem::getDragSort));
- // 閲嶆柊璁剧疆鎺掑簭鍊硷紝浣垮簭鍙疯繛缁�
- for (int i = 0; i < processRouteItems.size(); i++) {
- ProcessRouteItem item = processRouteItems.get(i);
- if (!item.getDragSort().equals(i+1)) {
- item.setDragSort(i+1);
- processRouteItemMapper.updateById(item);
- }
- }
- return "鍒犻櫎鎴愬姛";
- }
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
deleted file mode 100644
index b3beded..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.production.dto.ProcessRouteDto;
-import com.ruoyi.production.mapper.ProcessRouteItemMapper;
-import com.ruoyi.production.mapper.ProcessRouteMapper;
-import com.ruoyi.production.mapper.ProductOrderMapper;
-import com.ruoyi.production.mapper.ProductProcessRouteMapper;
-import com.ruoyi.production.pojo.ProcessRoute;
-import com.ruoyi.production.pojo.ProcessRouteItem;
-import com.ruoyi.production.pojo.ProductOrder;
-import com.ruoyi.production.pojo.ProductProcessRoute;
-import com.ruoyi.production.service.ProcessRouteService;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
-import java.util.List;
-
-@Service
-@AllArgsConstructor
-@Slf4j
-public class ProcessRouteServiceImpl extends ServiceImpl<ProcessRouteMapper, ProcessRoute> implements ProcessRouteService {
-
- @Autowired
- private ProcessRouteMapper processRouteMapper;
-
- @Autowired
- private ProcessRouteItemMapper processRouteItemMapper;
-
- @Autowired
- private ProductOrderMapper productOrderMapper;
-
- @Override
- public IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto) {
-
- return processRouteMapper.pageProcessRouteDto(page, processRouteDto);
- }
-
- @Override
- public Integer saveProcessRoute(ProcessRoute processRoute) {
- this.save(processRoute);
- String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
- String idStr = String.format("%06d", processRoute.getId());
- String newProductCode = "GYLX" + dateStr + idStr;
- // 鏇存柊鏁版嵁搴撲腑鐨刾roductCode
- processRoute.setProcessRouteCode(newProductCode);
- return processRouteMapper.updateById(processRoute);
- }
-
- @Override
- public int batchDelete(List<Long> ids) {
- //鍏堝垽鏂槸鍚﹀凡缁忓紩鐢ㄤ簡
- List<ProductOrder> productOrders = productOrderMapper.selectList(Wrappers.<ProductOrder>lambdaQuery().in(ProductOrder::getRouteId, ids));
- if (productOrders.size()>0){
- throw new RuntimeException("璇ュ伐鑹鸿矾绾跨敓浜у凡寮曠敤锛屼笉鑳藉垹闄�");
- }
- //鍒犻櫎宸ヨ壓璺嚎璇︽儏
- processRouteItemMapper.delete(Wrappers.<ProcessRouteItem>lambdaQuery().in(ProcessRouteItem::getRouteId, ids));
- return processRouteMapper.deleteBatchIds(ids);
- }
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java
deleted file mode 100644
index b92f5a3..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java
+++ /dev/null
@@ -1,408 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.basic.pojo.Product;
-import com.ruoyi.basic.pojo.ProductModel;
-import com.ruoyi.basic.service.IProductModelService;
-import com.ruoyi.basic.service.IProductService;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.production.dto.BomImportDto;
-import com.ruoyi.production.dto.ProductBomDto;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
-import com.ruoyi.production.service.ProductBomService;
-import com.ruoyi.production.service.ProductProcessRouteService;
-import com.ruoyi.production.service.ProductProcessService;
-import com.ruoyi.production.service.ProductStructureService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletResponse;
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- * BOM涓昏〃 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 09:59:27
- */
-@Service
-public class ProductBomServiceImpl extends ServiceImpl<ProductBomMapper, ProductBom> implements ProductBomService {
-
- @Autowired
- private IProductService productService;
-
- @Autowired
- private ProductBomMapper productBomMapper;
-
-
- @Autowired
- private IProductModelService productModelService;
-
- @Autowired
- private ProductStructureService productStructureService;
-
- @Autowired
- private ProductProcessService productProcessService;
-
- @Autowired
- private ProductProcessRouteMapper productProcessRouteMapper;
-
- @Autowired
- private ProductOrderMapper productOrderMapper;
-
- @Autowired
- private ProcessRouteMapper processRouteMapper;
-
- @Autowired
- private ProductStructureMapper productStructureMapper;
-
- @Override
- public IPage<ProductBomDto> listPage(Page page, ProductBomDto productBomDto) {
- return productBomMapper.listPage(page, productBomDto);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult add(ProductBom productBom) {
- boolean save = productBomMapper.insert(productBom) > 0;
- if (save) {
- String no = "BM." + String.format("%05d", productBom.getId());
- productBom.setBomNo(no);
- productBomMapper.updateById(productBom);
-
- // 鏌ヨ鍑轰骇鍝佹ā鍨嬩俊鎭�
- if (productBom.getProductModelId() == null) {
- throw new ServiceException("璇烽�夋嫨浜у搧妯″瀷");
- }
-
- ProductModel productModel = productModelService.getById(productBom.getProductModelId());
- if (productModel == null) {
- throw new ServiceException("閫夋嫨鐨勪骇鍝佹ā鍨嬩笉瀛樺湪");
- }
-
- // 娣诲姞鍒濆鐨勪骇鍝佺粨鏋�
- ProductStructure productStructure = new ProductStructure();
- productStructure.setProductModelId(productBom.getProductModelId());
- productStructure.setUnit(productModel.getUnit());
- productStructure.setUnitQuantity(BigDecimal.valueOf(1));
- productStructure.setBomId(productBom.getId());
-
- productStructureService.save(productStructure);
-
- return AjaxResult.success();
- }
- return AjaxResult.error();
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult update(ProductBom productBom) {
- // 鏌ヨ鍑轰骇鍝佹ā鍨嬩俊鎭�
- if (productBom.getProductModelId() == null) {
- throw new ServiceException("璇烽�夋嫨浜у搧妯″瀷");
- }
-
- ProductBom oldBom = productBomMapper.selectById(productBom.getId());
- // 濡傛灉瑙勬牸鏀瑰彉锛屽叧鑱旂殑鐢熶骇璁㈠崟濡傛灉璁㈠崟瀹屾垚鏁伴噺>0锛屽垯涓嶈鏀筨om锛涘惁鍒欏垹闄や箣鍓嶅叧鑱旂殑浜у搧缁撴瀯, 淇敼鍏宠仈璁㈠崟鐨勪骇鍝佷俊鎭�
- if (!oldBom.getProductModelId().equals(productBom.getProductModelId())) {
- ProductModel productModel = productModelService.getById(productBom.getProductModelId());
- if (productModel == null) {
- throw new ServiceException("閫夋嫨鐨勪骇鍝佹ā鍨嬩笉瀛樺湪");
- }
-
- // 鍏宠仈鐨勭敓浜ц鍗曞鏋滆鍗曞畬鎴愭暟閲�>0锛屽垯涓嶈鏀筨om
- // 鍏堟煡璇笌璇OM鍏宠仈鐨勫伐鑹鸿矾绾�
- List<ProductProcessRoute> productProcessRoutes = productProcessRouteMapper.selectList(new LambdaQueryWrapper<ProductProcessRoute>()
- .eq(ProductProcessRoute::getBomId, oldBom.getId()));
-
- // 妫�鏌ユ槸鍚︽湁鍏宠仈鐨勫伐鑹鸿矾绾�
- if (!productProcessRoutes.isEmpty()) {
- // 鎻愬彇宸ヨ壓璺嚎鍏宠仈鐨勭敓浜ц鍗旾D
- List<Long> orderIds = productProcessRoutes.stream()
- .map(ProductProcessRoute::getProductOrderId)
- .filter(Objects::nonNull)
- .collect(Collectors.toList());
-
- // 鏌ヨ鍏宠仈鐨勭敓浜ц鍗�
- if (!orderIds.isEmpty()) {
- List<ProductOrder> productOrders = productOrderMapper.selectList(new LambdaQueryWrapper<ProductOrder>()
- .in(ProductOrder::getId, orderIds));
-
- // 妫�鏌ヨ鍗曞畬鎴愭暟閲�
- for (ProductOrder order : productOrders) {
- if (order.getCompleteQuantity() != null && order.getCompleteQuantity().compareTo(BigDecimal.ZERO) > 0) {
- throw new ServiceException("璇OM宸插叧鑱旂敓浜ц鍗曚笖鏈夊畬鎴愭暟閲忥紝鏃犳硶淇敼");
- } else {
- // 淇敼鍏宠仈璁㈠崟鐨勪骇鍝佷俊鎭�
- order.setProductModelId(productBom.getProductModelId());
- productOrderMapper.updateById(order);
- }
- }
- }
-
- // 淇敼鍏宠仈浜у搧宸ヨ壓璺嚎鐨勪骇鍝佷俊鎭�
- for (ProductProcessRoute route : productProcessRoutes) {
- route.setProductModelId(productBom.getProductModelId());
- productProcessRouteMapper.updateById(route);
- }
- }
-
- // 鏌ヨ鍏宠仈鐨勫伐鑹鸿矾绾�
- List<ProcessRoute> processRoutes = processRouteMapper.selectList(new LambdaQueryWrapper<ProcessRoute>()
- .eq(ProcessRoute::getBomId, oldBom.getId()));
- if (!processRoutes.isEmpty()) {
- // 淇敼鍏宠仈宸ヨ壓璺嚎鐨勪骇鍝佷俊鎭�
- for (ProcessRoute route : processRoutes) {
- route.setProductModelId(productBom.getProductModelId());
- processRouteMapper.updateById(route);
- }
- }
-
- // 鍒犻櫎涔嬪墠鍏宠仈鐨勪骇鍝佺粨鏋�
- productStructureMapper.delete(new LambdaQueryWrapper<ProductStructure>().eq(ProductStructure::getBomId, productBom.getId()));
-
- // 鍏宠仈鏂扮殑浜у搧缁撴瀯
- ProductStructure productStructure = new ProductStructure();
- productStructure.setProductModelId(productBom.getProductModelId());
- productStructure.setUnit(productModel.getUnit());
- productStructure.setUnitQuantity(BigDecimal.valueOf(1));
- productStructure.setBomId(productBom.getId());
- productStructureService.save(productStructure);
- }
- productBomMapper.updateById(productBom);
- return AjaxResult.success();
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult uploadBom(MultipartFile file) {
- ExcelUtil<BomImportDto> util = new ExcelUtil<>(BomImportDto.class);
- List<BomImportDto> list;
- try {
- list = util.importExcel(file.getInputStream());
- } catch (Exception e) {
- return AjaxResult.error("Excel瑙f瀽澶辫触");
- }
-
- if (list == null || list.isEmpty()) return AjaxResult.error("鏁版嵁涓虹┖");
-
- // 澶勭悊宸ュ簭
- list.forEach(dto -> {
- dto.setParentName(clean(dto.getParentName()));
- dto.setParentSpec(clean(dto.getParentSpec()));
- dto.setChildName(clean(dto.getChildName()));
- dto.setChildSpec(clean(dto.getChildSpec()));
- });
- handleProcess(list);
- Map<String, Long> processMap = productProcessService.list().stream()
- .collect(Collectors.toMap(ProductProcess::getName, ProductProcess::getId, (k1, k2) -> k1));
-
- // 鍒涘缓 BOM 鏁版嵁
- BomImportDto first = list.get(0);
- ProductModel rootModel = findModel(first.getParentName(), first.getParentSpec());
- ProductBom bom = new ProductBom();
- bom.setProductModelId(rootModel.getId());
- bom.setVersion("1.0");
- productBomMapper.insert(bom);
- bom.setBomNo("BM." + String.format("%05d", bom.getId()));
- productBomMapper.updateById(bom);
-
- // 璁板綍宸茬粡鎻掑叆缁撴瀯鐨勮妭鐐癸細Key = "鍚嶇О+瑙勬牸", Value = structure_id
- Map<String, Long> treePathMap = new HashMap<>();
-
- for (int i = 0; i < list.size(); i++) {
- BomImportDto dto = list.get(i);
- String parentKey = dto.getParentName() + "|" + dto.getParentSpec();
- String childKey = dto.getChildName() + "|" + dto.getChildSpec();
-
- //澶勭悊鏍硅妭鐐�,绗竴琛屼笖瀛愰」涓虹┖
- if (i == 0 && StringUtils.isBlank(dto.getChildName())) {
- ProductStructure rootNode = new ProductStructure();
- rootNode.setBomId(bom.getId());
- rootNode.setParentId(null); // 椤跺眰娌℃湁鐖惰妭鐐�
- rootNode.setProductModelId(rootModel.getId());
- rootNode.setUnitQuantity(BigDecimal.ONE);
- rootNode.setUnit(rootModel.getUnit());
- productStructureService.save(rootNode);
-
- treePathMap.put(parentKey, rootNode.getId());
- continue;
- }
-
- // 澶勭悊瀛愬眰绾ц妭鐐�
- // 鎵惧埌鐖惰妭鐐瑰湪鏁版嵁搴撻噷鐨� ID
- Long parentStructureId = treePathMap.get(parentKey);
- if (parentStructureId == null) {
- // 濡傛灉 Map 閲屾壘涓嶅埌锛岃鏄� Excel 椤哄簭涔变簡鎴栬�呮暟鎹湁璇�
- throw new ServiceException("瀵煎叆澶辫触: 鐖堕」[" + dto.getParentName() + "]蹇呴』鍦ㄥ叾瀛愰」涔嬪墠瀹氫箟");
- }
-
- // 鑾峰彇瀛愰」妯″瀷淇℃伅
- ProductModel childModel = findModel(dto.getChildName(), dto.getChildSpec());
-
- // 鎻掑叆缁撴瀯琛�
- ProductStructure node = new ProductStructure();
- node.setBomId(bom.getId());
- node.setParentId(parentStructureId); // 鐖惰妭鐐笽D
- node.setProductModelId(childModel.getId());
- node.setUnitQuantity(dto.getUnitQty());
- node.setUnit(childModel.getUnit());
- if (processMap.containsKey(dto.getProcess())) {
- node.setProcessId(processMap.get(dto.getProcess()));
- }
- productStructureService.save(node);
-
- // 鎶婂綋鍓嶅瓙椤硅褰曞埌 Map,浣滀负浠ュ悗鏇存繁灞傜骇鐨勭埗椤规煡鎵句緷鎹�
- // 鍚屼竴鐖堕」涓嬬殑鍚屽悕瀛愰」涓嶉渶瑕侀噸澶嶈褰�
- treePathMap.put(childKey, node.getId());
- }
-
- return AjaxResult.success("BOM瀵煎叆鎴愬姛");
- }
-
-
- @Override
- public void exportBom(HttpServletResponse response, Integer bomId) {
- if (bomId == null) {
- return;
- }
-
- List<ProductStructureDto> treeData = productStructureService.listBybomId(bomId);
- if (treeData == null || treeData.isEmpty()) {
- return;
- }
-
- // 灏嗘爲褰㈢粨鏋勬墎骞冲寲 浣跨敤 BFS绠楁硶 瀵煎嚭,鎸夊眰绾ч『搴�
- List<BomImportDto> exportList = new ArrayList<>();
-
- // Map<ID, Node> idMap 鐢ㄤ簬鏌ユ壘鐖惰妭鐐�
- Map<Long, ProductStructureDto> idMap = new HashMap<>();
- populateMap(treeData, idMap);
-
- // treeData 鐨勭涓�涓槸鏍硅妭鐐�
- for (ProductStructureDto root : treeData) {
- // 娣诲姞鏍硅妭鐐�
- BomImportDto rootRow = new BomImportDto();
- rootRow.setParentName(root.getProductName());
- rootRow.setParentSpec(root.getModel());
- rootRow.setUnitQty(root.getUnitQuantity());
- rootRow.setRemark("");
- exportList.add(rootRow);
-
- // BFS 閬嶅巻-闃熷垪
- Queue<ProductStructureDto> queue = new LinkedList<>();
- if (root.getChildren() != null) {
- queue.addAll(root.getChildren());
- }
-
- while (!queue.isEmpty()) {
- ProductStructureDto child = queue.poll();
-
- // 鏌ユ壘鐖惰妭鐐�
- ProductStructureDto parent = idMap.get(child.getParentId());
- if (parent == null) {
- // 闄や簡鏈�澶栧眰鑺傜偣,鍏朵粬鑺傜偣鐨勭埗绫昏偗瀹氭槸涓嶄細涓虹┖鐨�
- continue;
- }
-
- BomImportDto row = new BomImportDto();
- // 鐖剁被淇℃伅
- row.setParentName(parent.getProductName());
- row.setParentSpec(parent.getModel());
- // 瀛愮被淇℃伅
- row.setChildName(child.getProductName());
- row.setChildSpec(child.getModel());
- row.setUnitQty(child.getUnitQuantity());
- row.setProcess(child.getProcessName());
-
- exportList.add(row);
-
- // 灏嗗瓙鑺傜偣鐨勫瓙鑺傜偣鍔犲叆闃熷垪-涓嬩竴灞�
- if (child.getChildren() != null && !child.getChildren().isEmpty()) {
- queue.addAll(child.getChildren());
- }
- }
- }
-
- ExcelUtil<BomImportDto> util = new ExcelUtil<>(BomImportDto.class);
- util.exportExcel(response, exportList, "BOM缁撴瀯瀵煎嚭");
- }
-
- private void populateMap(List<ProductStructureDto> nodes, Map<Long, ProductStructureDto> map) {
- if (nodes == null || nodes.isEmpty()) {
- return;
- }
- for (ProductStructureDto node : nodes) {
- map.put(node.getId(), node);
- populateMap(node.getChildren(), map);
- }
- }
-
- private ProductModel findModel(String name, String spec) {
- Product product = productService.getOne(new LambdaQueryWrapper<Product>()
- .eq(Product::getProductName, name).last("limit 1"));
- if (product == null) throw new ServiceException("浜у搧鏈淮鎶わ細" + name);
-
- ProductModel model = productModelService.getOne(new LambdaQueryWrapper<ProductModel>()
- .eq(ProductModel::getProductId, product.getId())
- .eq(ProductModel::getModel, spec).last("limit 1"));
- if (model == null) throw new ServiceException("瑙勬牸鏈淮鎶わ細" + name + "[" + spec + "]");
- return model;
- }
-
- private void handleProcess(List<BomImportDto> list) {
-
- Set<String> processNames = list.stream()
- .map(BomImportDto::getProcess)
- .filter(StringUtils::isNotBlank)
- .collect(Collectors.toSet());
-
- if (processNames.isEmpty()) {
- return;
- }
-
- List<ProductProcess> exists = productProcessService.list(
- new LambdaQueryWrapper<ProductProcess>().in(ProductProcess::getName, processNames)
- );
-
- Set<String> existNames = exists.stream()
- .map(ProductProcess::getName)
- .collect(Collectors.toSet());
-
- List<ProductProcess> needSave = processNames.stream()
- .filter(n -> !existNames.contains(n))
- .map(n -> {
- ProductProcess p = new ProductProcess();
- p.setName(n);
- return p;
- })
- .collect(Collectors.toList());
-
- if (!needSave.isEmpty()) {
- productProcessService.saveBatch(needSave);
- needSave.forEach(p -> p.setNo("GX" + String.format("%08d", p.getId())));
- productProcessService.updateBatchById(needSave);
- }
- }
-
- private String clean(String s) {
- if (s == null) return null;
- return s.replaceAll("[\\u00A0\\u3000]", "").trim();
- }
-}
-
-
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderMaterialServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderMaterialServiceImpl.java
deleted file mode 100644
index 9c2c9b6..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderMaterialServiceImpl.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.production.dto.ProductOrderMaterialDto;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.mapper.ProcessRouteMapper;
-import com.ruoyi.production.mapper.ProductOrderMapper;
-import com.ruoyi.production.mapper.ProductOrderMaterialMapper;
-import com.ruoyi.production.pojo.ProcessRoute;
-import com.ruoyi.production.pojo.ProductOrder;
-import com.ruoyi.production.pojo.ProductOrderMaterial;
-import com.ruoyi.production.service.ProductOrderMaterialService;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-@Service
-@RequiredArgsConstructor
-@Transactional(rollbackFor = Exception.class)
-public class ProductOrderMaterialServiceImpl extends ServiceImpl<ProductOrderMaterialMapper, ProductOrderMaterial> implements ProductOrderMaterialService {
-
- private final ProductOrderMaterialMapper productOrderMaterialmapper;
-
- private final ProductOrderMapper productOrderMapper;
-
- private final ProcessRouteMapper processRouteMapper;
-
-
- @Override
- public IPage<ProductOrderMaterial> listPage(Page<ProductOrderMaterial> page, ProductOrderMaterial productOrderMaterial) {
- return productOrderMaterialmapper.selectPage(page, null);
- }
-
- @Override
- public List<ProductOrderMaterialDto> pickMaterial(ProductOrderMaterialDto productOrderMaterialDto) {
- Long productOrderId = productOrderMaterialDto.getProductOrderId();
- ProductOrder productOrder = productOrderMapper.selectById(productOrderId);
- BigDecimal quantity = productOrder.getQuantity();
- ProcessRoute processRoute = processRouteMapper.selectById(productOrder.getRouteId());
- //鏌ヨ鍙跺瓙鑺傜偣
- List<ProductStructureDto> productStructureDtoList = productOrderMaterialmapper.selectLeafNode(Long.valueOf(processRoute.getBomId()));
- List<Long> productModelIds = productStructureDtoList.stream()
- .map(ProductStructureDto::getProductModelId)
- .filter(Objects::nonNull)
- .distinct()
- .collect(Collectors.toList());
-
- if (!productModelIds.isEmpty()) {
- List<ProductOrderMaterialDto> productOrderMaterialDtos = productOrderMaterialmapper.selectByProductModelIds(productModelIds);
- if (!productOrderMaterialDtos.isEmpty()) {
- return productOrderMaterialDtos;
- }else {
- throw new RuntimeException("搴撳瓨娌℃湁瀵瑰簲浜у搧");
- }
- }else {
- throw new RuntimeException("璇峰厛缁存姢BOM");
- }
- }
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
deleted file mode 100644
index 8a1099c..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ /dev/null
@@ -1,204 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
-import com.ruoyi.procurementrecord.utils.StockUtils;
-import com.ruoyi.production.dto.ProductOrderDto;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
-import com.ruoyi.production.service.ProductOrderService;
-import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Service
-public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, ProductOrder> implements ProductOrderService {
-
- @Autowired
- private ProductOrderMapper productOrderMapper;
-
- @Autowired
- private ProcessRouteMapper processRouteMapper;
-
- @Autowired
- private ProductProcessRouteMapper productProcessRouteMapper;
-
- @Autowired
- private ProcessRouteItemMapper processRouteItemMapper;
-
- @Autowired
- private ProductProcessRouteItemMapper productProcessRouteItemMapper;
-
- @Autowired
- private ProductWorkOrderMapper productWorkOrderMapper;
-
- @Autowired
- private ProductionProductMainMapper productionProductMainMapper;
-
- @Autowired
- private ProductionProductOutputMapper productionProductOutputMapper;
-
- @Autowired
- private ProductionProductInputMapper productionProductInputMapper;
-
- @Autowired
- private QualityInspectMapper qualityInspectMapper;
-
- @Autowired
- private SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
-
- @Autowired
- private StockUtils stockUtils;
-
- @Override
- public IPage<ProductOrderDto> pageProductOrder(Page page, ProductOrderDto productOrder) {
- return productOrderMapper.pageProductOrder(page, productOrder);
- }
-
- @Override
- public int bindingRoute(ProductOrder productOrder) {
- //鏂板鐢熶骇璁㈠崟涓嬬殑宸ヨ壓璺嚎涓昏〃
- ProcessRoute processRoute = processRouteMapper.selectById(productOrder.getRouteId());
- ProductProcessRoute productProcessRoute = new ProductProcessRoute();
- productProcessRoute.setProductModelId(processRoute.getProductModelId());
- productProcessRoute.setProcessRouteCode(processRoute.getProcessRouteCode());
- productProcessRoute.setProductOrderId(productOrder.getId());
- productProcessRoute.setBomId(processRoute.getBomId());
- productProcessRouteMapper.insert(productProcessRoute);
- //鏂板鐢熶骇璁㈠崟涓嬬殑宸ヨ壓璺嚎瀛愯〃
- List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(new QueryWrapper<ProcessRouteItem>().lambda().eq(ProcessRouteItem::getRouteId, processRoute.getId()));
- // 鐢熸垚褰撳墠鏃ユ湡鐨勫墠缂�锛氬勾鏈堟棩
- String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
- for (ProcessRouteItem processRouteItem : processRouteItems) {
- ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
- productProcessRouteItem.setProductModelId(processRouteItem.getProductModelId());
- productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
- productProcessRouteItem.setProductOrderId(productOrder.getId());
- productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
- productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
- int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
- if (insert > 0) {
- // 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶у伐鍗曞彿
- ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectMax(datePrefix);
- int sequenceNumber = 1; // 榛樿搴忓彿
- if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
- String lastNo = lastWorkOrder.getWorkOrderNo().toString();
- if (lastNo.startsWith(datePrefix)) {
- String seqStr = lastNo.substring(datePrefix.length());
- try {
- sequenceNumber = Integer.parseInt(seqStr) + 1;
- } catch (NumberFormatException e) {
- sequenceNumber = 1;
- }
- }
- }
- // 鐢熸垚瀹屾暣鐨勫伐鍗曞彿
- String workOrderNoStr = "GD" + String.format("%s%03d", datePrefix, sequenceNumber);
- ProductWorkOrder productWorkOrder = new ProductWorkOrder();
- productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
- productWorkOrder.setProductOrderId(productOrder.getId());
- ProductOrder order = productOrderMapper.selectById(productOrder.getId());
- productWorkOrder.setPlanQuantity(order.getQuantity());
- productWorkOrder.setWorkOrderNo(workOrderNoStr);
- productWorkOrder.setStatus(1);
- productWorkOrderMapper.insert(productWorkOrder);
- }
- }
- return productOrderMapper.updateById(productOrder);
- }
-
- @Override
- public List<ProcessRoute> listProcessRoute(Long productModelId) {
- return productOrderMapper.listProcessRoute(productModelId);
- }
-
- @Override
- public List<ProductStructureDto> listProcessBom(Long orderId) {
- return productOrderMapper.listProcessBom(orderId);
- }
-
- @Override
- public Boolean addProductOrder(ProductOrder productOrder) {
- String string = generateNextOrderNo(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
- productOrder.setNpsNo(string);
- productOrder.setCompleteQuantity(BigDecimal.ZERO);
- this.save(productOrder);
- if (ObjectUtils.isNotEmpty(productOrder.getRouteId())) {
- this.bindingRoute(productOrder);
- }
- return true;
- }
-
- @Override
- public Boolean delete(Long[] ids) {
- //濡傛灉宸茬粡寮�濮嬬敓浜�,涓嶈兘鍒犻櫎
- //鏌ヨ鐢熶骇璁㈠崟涓嬬殑宸ュ崟
- List<ProductWorkOrder> productWorkOrders = productWorkOrderMapper.selectList(Wrappers.<ProductWorkOrder>lambdaQuery().in(ProductWorkOrder::getProductOrderId, ids));
- if (productWorkOrders.size()>0){
- //鍒ゆ柇鏄惁鏈夋姤宸ユ暟鎹�
- List<ProductionProductMain> productionProductMains = productionProductMainMapper.selectList(Wrappers.<ProductionProductMain>lambdaQuery()
- .in(ProductionProductMain::getWorkOrderId, productWorkOrders.stream().map(ProductWorkOrder::getId).collect(Collectors.toList())));
- if (productionProductMains.size()>0){
- throw new RuntimeException("鐢熶骇璁㈠崟宸茬粡寮�濮嬬敓浜�,涓嶈兘鍒犻櫎");
- }
- //鍒犻櫎宸ュ崟
- productWorkOrderMapper.delete(Wrappers.<ProductWorkOrder>lambdaQuery().in(ProductWorkOrder::getProductOrderId, ids));
- }
- //鍒犻櫎宸ヨ壓璺嚎
- productProcessRouteItemMapper.delete(new LambdaQueryWrapper<ProductProcessRouteItem>()
- .in(ProductProcessRouteItem::getProductOrderId, ids));
- productProcessRouteMapper.delete(new LambdaQueryWrapper<ProductProcessRoute>()
- .in(ProductProcessRoute::getProductOrderId, ids));
- //鍒犻櫎鐢熶骇璁㈠崟
- productOrderMapper.delete(new LambdaQueryWrapper<ProductOrder>()
- .in(ProductOrder::getId, ids));
- return true;
- }
-
- //鑾峰彇褰撳墠鐢熶骇璁㈠崟鍙�
- public String getMaxOrderNoByDate(String datePrefix) {
- QueryWrapper<ProductOrder> queryWrapper = new QueryWrapper<>();
- // 鍖归厤浠� SC + 鏃ユ湡寮�澶寸殑璁㈠崟鍙�
- queryWrapper.likeRight("nps_no", "SC" + datePrefix);
- // 鎸夎鍗曞彿鍊掑簭鎺掑垪
- queryWrapper.orderByDesc("nps_no");
- queryWrapper.last("LIMIT 1");
-
- ProductOrder latestOrder = this.getOne(queryWrapper);
- return latestOrder != null ? latestOrder.getNpsNo() : null;
- }
-
- public String generateNextOrderNo(String datePrefix) {
- String maxOrderNo = getMaxOrderNoByDate(datePrefix);
- int sequence = 1; // 榛樿璧峰搴忓彿
- if (maxOrderNo != null && !maxOrderNo.isEmpty()) {
- // 鎻愬彇娴佹按鍙烽儴鍒嗭紙鍋囪鏍煎紡涓� SC + 鏃ユ湡 + 娴佹按鍙凤級
- String sequenceStr = maxOrderNo.substring(("SC" + datePrefix).length());
- try {
- sequence = Integer.parseInt(sequenceStr) + 1;
- } catch (NumberFormatException e) {
- // 寮傚父鎯呭喌涓嬮噸缃负1
- sequence = 1;
- }
- }
- // 鐢熸垚鏂拌鍗曞彿
- return "SC" + datePrefix + String.format("%04d", sequence);
- }
-
-
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
deleted file mode 100644
index c5fbac0..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
+++ /dev/null
@@ -1,205 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductProcessRouteItemDto;
-import com.ruoyi.production.dto.ProductionProductMainDto;
-import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
-import com.ruoyi.production.service.ProductProcessRouteItemService;
-import com.ruoyi.production.service.ProductionProductMainService;
-import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
-import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import lombok.AllArgsConstructor;
-import org.apache.poi.ss.formula.functions.T;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-@Service
-@Transactional(rollbackFor = Exception.class)
-@AllArgsConstructor
-public class ProductProcessRouteItemServiceImpl extends ServiceImpl<ProductProcessRouteItemMapper, ProductProcessRouteItem> implements ProductProcessRouteItemService {
-
-
- private ProductionProductMainService productionProductMainService;
- private ProductProcessRouteItemMapper productProcessRouteItemMapper;
-
- private ProductionProductMainMapper productionProductMainMapper;
-
- private ProductionProductInputMapper productionProductInputMapper;
-
- private ProductionProductOutputMapper productionProductOutputMapper;
-
- private QualityInspectMapper qualityInspectMapper;
-
- private SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
-
- private ProductWorkOrderMapper productWorkOrderMapper;
-
- private ProductOrderMapper productOrderMapper;
-
- private ProductProcessRouteMapper productProcessRouteMapper;
-
- private SalesLedgerProductMapper salesLedgerProductMapper;
-
-
- @Override
- public List<ProductProcessRouteItemDto> listItem(Long orderId) {
- return productProcessRouteItemMapper.listItem(orderId);
- }
-
- @Override
- public R deleteRouteItem(Long id) {
- Long routeItemId = id;
- try {
- // 鏌ヨ宸ュ崟
- ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectOne(
- new LambdaQueryWrapper<ProductWorkOrder>()
- .eq(ProductWorkOrder::getProductProcessRouteItemId, routeItemId)
- .last("LIMIT 1")
- );
- if (productWorkOrder == null) {
- throw new RuntimeException("鍒犻櫎澶辫触锛氭湭鎵惧埌鍏宠仈鐨勭敓浜у伐鍗�");
- }
- if (BigDecimal.ZERO.compareTo(productWorkOrder.getCompleteQuantity()) < 0) {
- throw new RuntimeException("鍒犻櫎澶辫触锛氳宸ュ崟宸插紑濮嬬敓浜э紝璇峰厛鍒犻櫎鐢熶骇鎶ュ伐");
- }
- Long workOrderId = productWorkOrder.getId();
- Long productOrderId = productWorkOrder.getProductOrderId();
- // 鏌ヨ鐢熶骇涓昏〃
- List<ProductionProductMain> productionProductMains = productionProductMainMapper.selectList(
- new LambdaQueryWrapper<ProductionProductMain>()
- .eq(ProductionProductMain::getWorkOrderId, workOrderId)
- );
- if (!productionProductMains.isEmpty()) {
- // 鎵归噺鍒犻櫎瀛愯〃
- for (ProductionProductMain main : productionProductMains) {
- productionProductMainService.removeProductMain(main.getId());
-// Long mainId = main.getId();
-// // 鍒犻櫎鎶曞叆
-// productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
-// .eq(ProductionProductInput::getProductMainId, mainId));
-// // 鍒犻櫎浜у嚭
-// productionProductOutputMapper.delete(new LambdaQueryWrapper<ProductionProductOutput>()
-// .eq(ProductionProductOutput::getProductMainId, mainId));
-// // 鍒犻櫎璐ㄦ
-// qualityInspectMapper.delete(new LambdaQueryWrapper<QualityInspect>()
-// .eq(QualityInspect::getProductMainId, mainId));
- salesLedgerProductionAccountingMapper.delete(new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
- .eq(SalesLedgerProductionAccounting::getProductMainId, main.getId()));
- }
- }
- // 鏌ヨ璁㈠崟 + 鍒犻櫎鏍哥畻
-
- // 鍒犻櫎鍏宠仈宸ュ崟
- productWorkOrderMapper.delete(new LambdaQueryWrapper<ProductWorkOrder>()
- .eq(ProductWorkOrder::getProductProcessRouteItemId, routeItemId));
-
- // 鍒犻櫎涓昏〃鏁版嵁
- ProductProcessRouteItem deleteProductProcessRouteItem = productProcessRouteItemMapper.selectById(routeItemId);
- Long productRouteId = deleteProductProcessRouteItem.getProductRouteId();
- // 鍒犻櫎鎸囧畾鏁版嵁
- productProcessRouteItemMapper.deleteById(id);
- // 鏌ヨ璇ュ伐鑹鸿矾绾跨殑鎵�鏈夊伐搴忓苟鎸夌収椤哄簭鎺掑簭
- List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery()
- .eq(ProductProcessRouteItem::getProductRouteId, productRouteId)
- .orderByAsc(ProductProcessRouteItem::getDragSort));
- // 閲嶆柊璁剧疆鎺掑簭鍊硷紝浣垮簭鍙疯繛缁�
- for (int i = 0; i < productProcessRouteItems.size(); i++) {
- ProductProcessRouteItem item = productProcessRouteItems.get(i);
- if (!item.getDragSort().equals(i + 1)) {
- item.setDragSort(i + 1);
- productProcessRouteItemMapper.updateById(item);
- }
- }
- return R.ok();
- } catch (Exception e) {
- throw new RuntimeException("鍒犻櫎鐢熶骇宸ヨ壓璺嚎澶辫触锛�" + e.getMessage());
- }
- }
-
- @Override
- public R addRouteItem(ProductProcessRouteItem productProcessRouteItem) {
- ProductOrder productOrder = productOrderMapper.selectById(productProcessRouteItem.getProductOrderId());
- int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
- // 鐢熸垚褰撳墠鏃ユ湡鐨勫墠缂�锛氬勾鏈堟棩
- String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
- if (insert > 0) {
- // 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶у伐鍗曞彿
- ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectMax(datePrefix);
- int sequenceNumber = 1; // 榛樿搴忓彿
- if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
- String lastNo = lastWorkOrder.getWorkOrderNo().toString();
- if (lastNo.startsWith(datePrefix)) {
- String seqStr = lastNo.substring(datePrefix.length());
- try {
- sequenceNumber = Integer.parseInt(seqStr) + 1;
- } catch (NumberFormatException e) {
- sequenceNumber = 1;
- }
- }
- }
- // 鐢熸垚瀹屾暣鐨勫伐鍗曞彿
- String workOrderNoStr = "GD" +String.format("%s%03d", datePrefix, sequenceNumber);
- ProductWorkOrder productWorkOrder = new ProductWorkOrder();
- productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
- productWorkOrder.setProductOrderId(productProcessRouteItem.getProductOrderId());
- productWorkOrder.setPlanQuantity(productOrder.getQuantity());
- productWorkOrder.setWorkOrderNo(workOrderNoStr);
- productWorkOrder.setStatus(1);
- productWorkOrderMapper.insert(productWorkOrder);
- }
- return R.ok();
- }
-
- @Override
- public int sortRouteItem(ProductProcessRouteItem productProcessRouteItem) {
- //鏌ヨ琚敼鍔ㄧ殑杩欐潯鏁版嵁
- ProductProcessRouteItem oldProductProcessRouteItem = productProcessRouteItemMapper.selectById(productProcessRouteItem.getId());
- //鏌ヨ璇ュ伐鑹鸿矾绾跨殑鎵�鏈夊伐搴忓苟鎸夌収椤哄簭鎺掑簭
- List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery()
- .eq(ProductProcessRouteItem::getProductRouteId, oldProductProcessRouteItem.getProductRouteId())
- .orderByAsc(ProductProcessRouteItem::getDragSort));
- // 鑾峰彇鐩爣浣嶇疆锛堢Щ鍔ㄥ埌绗嚑涓箣鍚庯級
- Integer targetPosition = productProcessRouteItem.getDragSort();
- if (targetPosition != null && targetPosition >= 0) {
- // 绉诲姩鍏冪礌鍒版柊鐨勪綅缃�
- productProcessRouteItems.remove(oldProductProcessRouteItem);
- productProcessRouteItems.add(targetPosition-1, oldProductProcessRouteItem);
- // 鏇存柊鎵�鏈夊彈褰卞搷鐨勬帓搴忓瓧娈�
- for (int i = 0; i < productProcessRouteItems.size(); i++) {
- ProductProcessRouteItem item = productProcessRouteItems.get(i);
- if (!item.getId().equals(oldProductProcessRouteItem.getId())) {
- // 妫�鏌ユ槸鍚﹂渶瑕佹洿鏂版帓搴忓��
- if (item.getDragSort() != i+1) {
- item.setDragSort(i+1);
- productProcessRouteItemMapper.updateById(item);
- }
- } else {
- // 鏇存柊鍘熻褰曠殑鏂版帓搴忎綅缃�
- oldProductProcessRouteItem.setDragSort(targetPosition);
- productProcessRouteItemMapper.updateById(oldProductProcessRouteItem);
- }
- }
- return 1;
- }
- return 0;
- }
-
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteServiceImpl.java
deleted file mode 100644
index f5b2e92..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteServiceImpl.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.ruoyi.production.dto.ProcessRouteDto;
-import com.ruoyi.production.pojo.ProductProcessRoute;
-import com.ruoyi.production.mapper.ProductProcessRouteMapper;
-import com.ruoyi.production.service.ProductProcessRouteService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-15 02:51:09
- */
-@Service
-public class ProductProcessRouteServiceImpl extends ServiceImpl<ProductProcessRouteMapper, ProductProcessRoute> implements ProductProcessRouteService {
-
- @Autowired
- private ProductProcessRouteMapper productProcessRouteMapper;
-
- @Override
- public ProcessRouteDto listMain(Long orderId) {
- return productProcessRouteMapper.listMain(orderId);
- }
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
deleted file mode 100644
index 3be9086..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.basic.pojo.Customer;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.production.dto.ProductProcessDto;
-import com.ruoyi.production.mapper.ProcessRouteItemMapper;
-import com.ruoyi.production.mapper.ProductProcessMapper;
-import com.ruoyi.production.mapper.ProductProcessRouteItemMapper;
-import com.ruoyi.production.pojo.ProcessRouteItem;
-import com.ruoyi.production.pojo.ProductProcess;
-import com.ruoyi.production.pojo.ProductProcessRouteItem;
-import com.ruoyi.production.service.ProductProcessService;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.List;
-
-@Service
-public class ProductProcessServiceImpl extends ServiceImpl<ProductProcessMapper, ProductProcess> implements ProductProcessService {
- @Autowired
- private ProductProcessMapper productProcessMapper;
- @Autowired
- private ProcessRouteItemMapper processRouteItemMapper;
- @Autowired
- private ProductProcessRouteItemMapper productProcessRouteItemMapper;
-
- @Override
- public IPage<ProductProcessDto> listPage(Page page, ProductProcessDto productProcessDto) {
- return productProcessMapper.listPage(page, productProcessDto);
- }
-
- @Override
- public AjaxResult add(ProductProcessDto productProcessDto) {
- ProductProcess productProcess = new ProductProcess();
- BeanUtils.copyProperties(productProcessDto,productProcess);
- boolean save = productProcessMapper.insert(productProcess) > 0;
- if (save && ObjectUtils.isNull(productProcessDto.getNo())) {
- // 鏍规嵁id鐢熸垚no瀛楁锛欸X + 8浣嶆暟瀛楋紙涓嶈冻8浣嶅墠闈㈣ˉ0锛�
- String no = "GX" + String.format("%08d", productProcess.getId());
- productProcess.setNo(no);
-
- productProcessMapper.updateById(productProcess);
- return AjaxResult.success();
- }
- return AjaxResult.success();
- }
-
- @Override
- public AjaxResult importData(MultipartFile file) {
- try {
- ExcelUtil<ProductProcess> util = new ExcelUtil<ProductProcess>(ProductProcess.class);
- List<ProductProcess> productProcessList = util.importExcel(file.getInputStream());
- if(CollectionUtils.isEmpty(productProcessList)){
- return AjaxResult.warn("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
- }
- productProcessList.forEach(productProcess -> {
- if (ObjectUtils.isEmpty(productProcess)) {
- throw new RuntimeException("浣跨敤妯℃澘杩涜瀵煎叆");
- }
- if (ObjectUtils.isEmpty(productProcess.getName())) {
- throw new RuntimeException("宸ュ簭鍚嶇О涓嶈兘涓虹┖");
- }
- });
- this.saveOrUpdateBatch(productProcessList);
- return AjaxResult.success(true);
- }catch (Exception e){
- e.printStackTrace();
- return AjaxResult.error(e.getMessage());
- }
- }
-
- @Override
- public String batchDelete(List<Integer> ids) {
- //鏌ヨ鏄惁鐢熶骇涓凡缁忓紩鐢ㄤ簡杩欎簺宸ュ簭
- List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(Wrappers.<ProcessRouteItem>lambdaQuery().in(ProcessRouteItem::getProcessId, ids));
- List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().in(ProductProcessRouteItem::getProcessId, ids));
- if (!CollectionUtils.isEmpty(processRouteItems) || !CollectionUtils.isEmpty(productProcessRouteItems)){
- throw new RuntimeException("璇ュ伐搴忓凡缁忚浣跨敤锛屾棤娉曞垹闄�");
- }
- productProcessMapper.deleteBatchIds(ids);
- return null;
- }
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
deleted file mode 100644
index 381b642..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.mapper.ProductStructureMapper;
-import com.ruoyi.production.pojo.ProductStructure;
-import com.ruoyi.production.service.ProductStructureService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Slf4j
-@Service
-public class ProductStructureServiceImpl extends ServiceImpl<ProductStructureMapper, ProductStructure> implements ProductStructureService {
-
- @Autowired
- private ProductStructureMapper productStructureMapper;
-
-
- @Override
- @Transactional
- public Boolean addProductStructureDto(ProductStructureDto dto) {
-
- Integer bomId = dto.getBomId();
-
- // 灏嗘爲鎵佸钩鍖�
- List<ProductStructureDto> flatDtoList = new ArrayList<>();
- flattenTree(dto.getChildren(), flatDtoList);
-
- // 鏌ヨ鏁版嵁搴撲腑宸叉湁鐨� BOM 鏁版嵁
- List<ProductStructure> dbList = this.list(new LambdaQueryWrapper<ProductStructure>().eq(ProductStructure::getBomId, bomId));
-
- // 鏌ユ壘宸插瓨鍦ㄧ殑鑺傜偣 - ID
- Set<Long> frontendIds = flatDtoList.stream()
- .map(ProductStructureDto::getId)
- .filter(Objects::nonNull)
- .collect(Collectors.toSet());
-
- // 闇�瑕佸垹闄ょ殑鑺傜偣 - ID
- Set<Long> deleteIds = dbList.stream()
- .map(ProductStructure::getId)
- .filter(id -> !frontendIds.contains(id))
- .collect(Collectors.toSet());
-
- if (!deleteIds.isEmpty()) {
- this.removeByIds(deleteIds);
- }
-
- // 鏂板 / 鏇存柊
- List<ProductStructure> insertList = new ArrayList<>();
- List<ProductStructure> updateList = new ArrayList<>();
-
- // 鐢ㄤ簬鍥炲啓 parentId
- Map<String, ProductStructure> tempEntityMap = new HashMap<>();
-
- for (ProductStructureDto psDto : flatDtoList) {
- ProductStructure entity = new ProductStructure();
- BeanUtils.copyProperties(psDto, entity);
- entity.setBomId(bomId);
-
- if (psDto.getId() == null) {
- // 鏂板
- entity.setId(null);
- entity.setParentId(null);
- insertList.add(entity);
- tempEntityMap.put(psDto.getTempId(), entity);
- } else {
- // 鏇存柊
- updateList.add(entity);
- }
- }
-
- // 鎻掑叆鏂拌妭鐐�
- if (!insertList.isEmpty()) {
- this.saveBatch(insertList);
- }
-
- // 鍥炲啓鏂板鑺傜偣 parentId
- List<ProductStructure> parentFixList = new ArrayList<>();
- // 鐪熷疄鐨勭埗鑺傜偣 ID
- Long realParentId;
- for (ProductStructureDto psDto : flatDtoList) {
- if (psDto.getId() == null && psDto.getParentTempId() != null) {
- ProductStructure child = tempEntityMap.get(psDto.getTempId());
- if (tempEntityMap.containsKey(psDto.getParentTempId())) {
- // 鐖惰妭鐐规槸鏂拌妭鐐�
- realParentId = tempEntityMap.get(psDto.getParentTempId()).getId();
- } else {
- // 鐖惰妭鐐规槸鑰佽妭鐐�
- realParentId = Long.valueOf(psDto.getParentTempId());
- }
-
- child.setParentId(realParentId);
- parentFixList.add(child);
- }
- }
-
- if (!parentFixList.isEmpty()) {
- this.updateBatchById(parentFixList);
- }
-
- if (!updateList.isEmpty()) {
- this.updateBatchById(updateList);
- }
-
- return true;
- }
-
- /**
- * 灏嗗墠绔紶鍏ョ殑鏍戣繘琛屾墎骞冲寲
- *
- * @param source 鏁版嵁鏍�
- * @param result 鎵佸钩鍖栨暟鎹�
- */
- private void flattenTree(List<ProductStructureDto> source, List<ProductStructureDto> result) {
- if (source == null) {
- return;
- }
- for (ProductStructureDto node : source) {
- result.add(node);
- flattenTree(node.getChildren(), result);
- }
- }
-
-
- @Override
- public List<ProductStructureDto> listBybomId(Integer bomId) {
- List<ProductStructureDto> list = productStructureMapper.listBybomId(bomId);
-
- Map<Long, ProductStructureDto> map = new HashMap<>();
- for (ProductStructureDto node : list) {
- node.setChildren(new ArrayList<>());
- map.put(node.getId(), node);
- }
-
- List<ProductStructureDto> tree = new ArrayList<>();
- for (ProductStructureDto node : list) {
- Long parentId = node.getParentId();
- if (parentId == null || parentId == 0) {
- tree.add(node);
- } else {
- ProductStructureDto parent = map.get(parentId);
- if (parent != null) {
- parent.getChildren().add(node);
- }
- }
- }
- return tree;
- }
-
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderFileServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderFileServiceImpl.java
deleted file mode 100644
index b0391ea..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderFileServiceImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.ruoyi.production.pojo.ProductWorkOrderFile;
-import com.ruoyi.production.mapper.ProductWorkOrderFileMapper;
-import com.ruoyi.production.service.ProductWorkOrderFileService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 鐢熶骇宸ュ崟闄勪欢琛� 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-01-23 03:28:32
- */
-@Service
-public class ProductWorkOrderFileServiceImpl extends ServiceImpl<ProductWorkOrderFileMapper, ProductWorkOrderFile> implements ProductWorkOrderFileService {
-
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
deleted file mode 100644
index 4a68ce8..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.deepoove.poi.XWPFTemplate;
-import com.deepoove.poi.config.Configure;
-import com.deepoove.poi.data.PictureRenderData;
-import com.deepoove.poi.data.Pictures;
-import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
-import com.ruoyi.common.utils.MatrixToImageWriter;
-import com.ruoyi.production.dto.ProductWorkOrderDto;
-import com.ruoyi.production.mapper.ProductWorkOrderFileMapper;
-import com.ruoyi.production.mapper.ProductWorkOrderMapper;
-import com.ruoyi.production.pojo.ProductWorkOrder;
-import com.ruoyi.production.pojo.ProductWorkOrderFile;
-import com.ruoyi.production.service.ProductWorkOrderService;
-import com.ruoyi.quality.pojo.QualityInspectParam;
-import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Service
-@Transactional(rollbackFor = Exception.class)
-public class ProductWorkOrderServiceImpl extends ServiceImpl<ProductWorkOrderMapper, ProductWorkOrder> implements ProductWorkOrderService {
-
- @Autowired
- private ProductWorkOrderMapper productWorkOrdermapper;
- @Autowired
- private ProductWorkOrderFileMapper productWorkOrderFileMapper;
-
- @Value("${file.temp-dir}")
- private String tempDir;
-
- @Override
- public IPage<ProductWorkOrderDto> listPage(Page<ProductWorkOrderDto> page, ProductWorkOrderDto productWorkOrder) {
- return productWorkOrdermapper.pageProductWorkOrder(page, productWorkOrder);
- }
-
- @Override
- public int updateProductWorkOrder(ProductWorkOrderDto productWorkOrderDto) {
- return productWorkOrdermapper.updateById(productWorkOrderDto);
- }
-
- @Override
- public void down(HttpServletResponse response, ProductWorkOrder productWorkOrder) {
- ProductWorkOrderDto productWorkOrderDto = productWorkOrdermapper.getProductWorkOrderFlowCard(productWorkOrder.getId());
- String codePath;
- try {
- codePath = new MatrixToImageWriter().code(productWorkOrderDto.getId().toString(), tempDir);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- /*鑾峰彇闄勪欢鍥剧墖绫诲瀷*/
- List<Map<String, Object>> images = new ArrayList<>();
- List<ProductWorkOrderFile> productWorkOrderFiles = productWorkOrderFileMapper.selectList(Wrappers.<ProductWorkOrderFile>lambdaQuery().eq(ProductWorkOrderFile::getWorkOrderId, productWorkOrder.getId()));
- if (CollectionUtils.isNotEmpty(productWorkOrderFiles)) {
- productWorkOrderFiles.forEach(productWorkOrderFile -> {
- Map<String, Object> image = new HashMap<>();
- PictureRenderData pictureRenderData = Pictures.ofLocal( productWorkOrderFile.getUrl()).sizeInCm(17, 20).create();
- image.put("url", pictureRenderData);
- images.add(image);
- });
- }
- InputStream inputStream = this.getClass().getResourceAsStream("/static/work-order-template.docx");
- XWPFTemplate template = XWPFTemplate.compile(inputStream).render(
- new HashMap<String, Object>() {{
- put("process", productWorkOrderDto.getProcessName());
- put("workOrderNo", productWorkOrderDto.getWorkOrderNo());
- put("productOrderNpsNo", productWorkOrderDto.getProductOrderNpsNo());
- put("productName", productWorkOrderDto.getProductName());
- put("planQuantity", productWorkOrderDto.getPlanQuantity());
- put("model", productWorkOrderDto.getModel());
- put("completeQuantity", productWorkOrderDto.getCompleteQuantity());
- put("scrapQty", productWorkOrderDto.getScrapQty());
- put("planStartTime", productWorkOrderDto.getPlanStartTime());
- put("planEndTime", productWorkOrderDto.getPlanEndTime());
- put("actualStartTime", productWorkOrderDto.getActualStartTime());
- put("actualEndTime", productWorkOrderDto.getActualEndTime());
- put("twoCode", Pictures.ofLocal(codePath).create());
- put("images", images.isEmpty()?null:images);
- }});
-
- try {
- response.setContentType("application/msword");
- String fileName = URLEncoder.encode(
- "娴佽浆鍗�", "UTF-8");
- response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
- response.setHeader("Content-disposition",
- "attachment;filename=" + fileName + ".docx");
- OutputStream os = response.getOutputStream();
- template.write(os);
- os.flush();
- os.close();
- inputStream.close();
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException("瀵煎嚭澶辫触");
- }
- }
-
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionAccountServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionAccountServiceImpl.java
new file mode 100644
index 0000000..e8e3126
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionAccountServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionAccountMapper;
+import com.ruoyi.production.pojo.ProductionAccount;
+import com.ruoyi.production.service.ProductionAccountService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇鏍哥畻琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionAccountServiceImpl extends ServiceImpl<ProductionAccountMapper, ProductionAccount> implements ProductionAccountService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java
new file mode 100644
index 0000000..5340433
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionBomStructureMapper;
+import com.ruoyi.production.pojo.ProductionBomStructure;
+import com.ruoyi.production.service.ProductionBomStructureService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟BOM浜у搧缁撴瀯 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionBomStructureServiceImpl extends ServiceImpl<ProductionBomStructureMapper, ProductionBomStructure> implements ProductionBomStructureService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationMainParamServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationMainParamServiceImpl.java
new file mode 100644
index 0000000..1f0abf7
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationMainParamServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOperationMainParamMapper;
+import com.ruoyi.production.pojo.ProductionOperationMainParam;
+import com.ruoyi.production.service.ProductionOperationMainParamService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟鎶ュ伐鍙傛暟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOperationMainParamServiceImpl extends ServiceImpl<ProductionOperationMainParamMapper, ProductionOperationMainParam> implements ProductionOperationMainParamService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
new file mode 100644
index 0000000..ee245d6
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOperationTaskMapper;
+import com.ruoyi.production.pojo.ProductionOperationTask;
+import com.ruoyi.production.service.ProductionOperationTaskService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇宸ュ崟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOperationTaskServiceImpl extends ServiceImpl<ProductionOperationTaskMapper, ProductionOperationTask> implements ProductionOperationTaskService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderBomServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderBomServiceImpl.java
new file mode 100644
index 0000000..800e987
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderBomServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOrderBomMapper;
+import com.ruoyi.production.pojo.ProductionOrderBom;
+import com.ruoyi.production.service.ProductionOrderBomService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟BOM 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOrderBomServiceImpl extends ServiceImpl<ProductionOrderBomMapper, ProductionOrderBom> implements ProductionOrderBomService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickRecordServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickRecordServiceImpl.java
new file mode 100644
index 0000000..e852999
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickRecordServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOrderPickRecordMapper;
+import com.ruoyi.production.pojo.ProductionOrderPickRecord;
+import com.ruoyi.production.service.ProductionOrderPickRecordService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 绾胯竟浠撳嚭鍏ュ簱璁板綍 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOrderPickRecordServiceImpl extends ServiceImpl<ProductionOrderPickRecordMapper, ProductionOrderPickRecord> implements ProductionOrderPickRecordService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java
new file mode 100644
index 0000000..b4e3826
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOrderPickMapper;
+import com.ruoyi.production.pojo.ProductionOrderPick;
+import com.ruoyi.production.service.ProductionOrderPickService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 璁㈠崟棰嗘枡绾胯竟浠� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOrderPickServiceImpl extends ServiceImpl<ProductionOrderPickMapper, ProductionOrderPick> implements ProductionOrderPickService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java
new file mode 100644
index 0000000..d6eab7c
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOrderRoutingOperationParamMapper;
+import com.ruoyi.production.pojo.ProductionOrderRoutingOperationParam;
+import com.ruoyi.production.service.ProductionOrderRoutingOperationParamService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOrderRoutingOperationParamServiceImpl extends ServiceImpl<ProductionOrderRoutingOperationParamMapper, ProductionOrderRoutingOperationParam> implements ProductionOrderRoutingOperationParamService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java
new file mode 100644
index 0000000..90b1ba1
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOrderRoutingOperationMapper;
+import com.ruoyi.production.pojo.ProductionOrderRoutingOperation;
+import com.ruoyi.production.service.ProductionOrderRoutingOperationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOrderRoutingOperationServiceImpl extends ServiceImpl<ProductionOrderRoutingOperationMapper, ProductionOrderRoutingOperation> implements ProductionOrderRoutingOperationService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingServiceImpl.java
new file mode 100644
index 0000000..393ebe0
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOrderRoutingMapper;
+import com.ruoyi.production.pojo.ProductionOrderRouting;
+import com.ruoyi.production.service.ProductionOrderRoutingService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟宸ヨ壓璺嚎琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOrderRoutingServiceImpl extends ServiceImpl<ProductionOrderRoutingMapper, ProductionOrderRouting> implements ProductionOrderRoutingService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
new file mode 100644
index 0000000..6b1bc0c
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductionOrderMapper;
+import com.ruoyi.production.pojo.ProductionOrder;
+import com.ruoyi.production.service.ProductionOrderService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐢熶骇璁㈠崟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
+@Service
+public class ProductionOrderServiceImpl extends ServiceImpl<ProductionOrderMapper, ProductionOrder> implements ProductionOrderService {
+
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
new file mode 100644
index 0000000..852bfca
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
@@ -0,0 +1,558 @@
+//package com.ruoyi.production.service.impl;
+//
+//import com.alibaba.fastjson2.JSONArray;
+//import com.alibaba.fastjson2.JSONObject;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+//import com.ruoyi.common.exception.ServiceException;
+//import com.ruoyi.common.exception.base.BaseException;
+//import com.ruoyi.common.utils.StringUtils;
+//import com.ruoyi.common.utils.bean.BeanUtils;
+//import com.ruoyi.common.utils.poi.ExcelUtil;
+//import com.ruoyi.production.bean.dto.ProductionPlanDto;
+//import com.ruoyi.production.bean.dto.ProductionPlanImportDto;
+//import com.ruoyi.production.bean.vo.ProductionPlanVo;
+//import com.ruoyi.production.mapper.ProductionPlanMapper;
+//import com.ruoyi.production.pojo.ProductionPlan;
+//import com.ruoyi.production.service.ProductionPlanService;
+//import lombok.RequiredArgsConstructor;
+//import org.springframework.stereotype.Service;
+//import org.springframework.transaction.annotation.Transactional;
+//import org.springframework.web.multipart.MultipartFile;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.math.BigDecimal;
+//import java.time.Instant;
+//import java.time.LocalDateTime;
+//import java.time.ZoneId;
+//import java.util.*;
+//import java.util.concurrent.locks.ReentrantLock;
+//import java.util.stream.Collectors;
+//
+///**
+// * <p>
+// * 鐢熶骇璁″垝琛� 鏈嶅姟瀹炵幇绫�
+// * </p>
+// *
+// * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+// * @since 2026-04-21 02:11:10
+// */
+//@Service
+//@RequiredArgsConstructor
+//public class ProductionPlanServiceImpl extends ServiceImpl<ProductionPlanMapper, ProductionPlan> implements ProductionPlanService {
+//
+// private ProductionPlanMapper productionPlanMapper;
+//
+//
+// /**
+// * 鍚屾閿侊紝纭繚鎵嬪姩鍜屽畾鏃朵换鍔′笉鍚屾椂鎵ц
+// */
+// private final ReentrantLock syncLock = new ReentrantLock();
+//
+// @Override
+// public IPage<ProductionPlanVo> listPage(Page<ProductionPlanDto> page, ProductionPlanDto productionPlanDto) {
+//
+// return productionPlanMapper.selectPage(page, null);
+// }
+//
+// /**
+// * 椤甸潰鎵嬪姩鍚屾
+// */
+// @Override
+// public void loadProdData() {
+// syncProdData(1);
+// }
+//
+// /**
+// * 瀹氭椂浠诲姟鍚屾
+// */
+// @Override
+// public void syncProdDataJob() {
+// syncProdData(2);
+// }
+//
+// /**
+// * 鍚堝苟鐢熶骇璁″垝
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean combine(ProductionPlanDto productionPlanDto) {
+// if (productionPlanDto.getIds() == null || productionPlanDto.getIds().isEmpty()) {
+// return false;
+// }
+//
+// // 鏌ヨ涓荤敓浜ц鍒�
+// List<ProductionPlanDto> plans = productionPlanMapper.selectWithMaterialByIds(productionPlanDto.getIds());
+//
+// if (plans == null || plans.isEmpty()) {
+// throw new ServiceException("涓嬪彂澶辫触,鐢熶骇璁″垝涓嶅瓨鍦�");
+// }
+//
+// // 鏍¢獙鏄惁瀛樺湪涓嶅悓鐨勪骇鍝佸悕绉�
+// String firstProductName = plans.get(0).getProductName();
+// if (plans.stream().anyMatch(p -> p.getProductName() == null || !p.getProductName().equals(firstProductName))) {
+// throw new BaseException("鍚堝苟澶辫触锛屽瓨鍦ㄤ笉鍚岀殑浜у搧鍚嶇О");
+// }
+//
+// // 鏍¢獙鏄惁瀛樺湪涓嶅悓鐨勪骇鍝佽鏍�
+// String firstProductSpec = plans.get(0).getModel();
+// if (plans.stream().anyMatch(p -> p.getModel() == null || !p.getModel().equals(firstProductSpec))) {
+// throw new BaseException("鍚堝苟澶辫触锛屽瓨鍦ㄤ笉鍚岀殑浜у搧瑙勬牸");
+// }
+//
+// // 鍙犲姞鍓╀綑鏂规暟
+// BigDecimal totalRemainingVolume = plans.stream()
+// .map(ProductionPlan::getRemainingVolume)
+// .filter(Objects::nonNull)
+// .reduce(BigDecimal.ZERO, BigDecimal::add);
+// // 鍒ゆ柇涓嬪彂鏁伴噺鏄惁澶т簬绛変簬鍓╀綑鏂规暟
+// if (productionPlanDto.getTotalAssignedQuantity().compareTo(totalRemainingVolume) > 0) {
+// throw new BaseException("鎿嶄綔澶辫触锛屼笅鍙戞暟閲忎笉鑳藉ぇ浜庡墿浣欐柟鏁�");
+// }
+//
+// // 鍒涘缓鐢熶骇璁㈠崟
+// ProductOrder productOrder = new ProductOrder();
+// productOrder.setQuantity(productionPlanDto.getTotalAssignedQuantity());
+// productOrder.setPlanCompleteTime(productionPlanDto.getPlanCompleteTime());
+// productOrder.setStatus(ProductOrderStatusEnum.WAIT.getCode());
+// productOrder.setStrength(productionPlanDto.getStrength());
+// productOrder.setProductMaterialSkuId(plans.get(0).getProductMaterialSkuId());
+//
+// Long orderId = productOrderService.insertProductOrder(productOrder);
+//
+// // 褰撲笅鍙戠殑浜у搧涓虹爩鍧楁垨鏉挎潗锛屽氨鎷夊彇BOM瀛愰泦涓庡伐鑹鸿矾绾垮瓙闆嗘暟鎹瓨鍏ュ埌闄勮〃涓�
+// if ("鐮屽潡".equals(productionPlanDto.getProductName())) {
+// productOrder.setRouteId(productionOrderAppendixService.populateBlocks(orderId, productionPlanDto));
+// }
+// if ("鏉挎潗".equals(productionPlanDto.getProductName())) {
+// productOrder.setRouteId(productionOrderAppendixService.populatePlates(orderId, productionPlanDto));
+// }
+// // 鏇存柊缁戝畾鐨勫伐鑹鸿矾绾�
+// productOrderService.updateById(productOrder);
+//
+// // 鏍规嵁涓嬪彂鏁伴噺锛屼粠绗竴涓敓浜ц鍒掑紑濮嬪垎閰嶆柟鏁�
+// BigDecimal assignedVolume = BigDecimal.ZERO;
+// for (ProductionPlan plan : plans) {
+// BigDecimal volume = plan.getVolume();
+// if (volume == null) {
+// continue;
+// }
+// // 璁$畻鍓╀綑鏂规暟
+// BigDecimal remainingVolume = plan.getRemainingVolume();
+// if (remainingVolume.compareTo(BigDecimal.ZERO) <= 0) {
+// continue;
+// }
+//
+// ProductOrderPlan productOrderPlan = new ProductOrderPlan();
+// productOrderPlan.setProductOrderId(productOrder.getId());
+// productOrderPlan.setProductionPlanId(plan.getId());
+//
+// if (assignedVolume.add(remainingVolume).compareTo(productionPlanDto.getTotalAssignedQuantity()) >= 0) {
+// // 鏈�鍚庝竴涓鍒掞紝鍒嗛厤鍓╀綑鏂规暟
+// BigDecimal lastRemainingVolume = productionPlanDto.getTotalAssignedQuantity().subtract(assignedVolume);
+// BigDecimal assignedQuantity = Optional.ofNullable(plan.getAssignedQuantity()).orElse(BigDecimal.ZERO).add(lastRemainingVolume);
+// plan.setAssignedQuantity(assignedQuantity);
+// plan.setStatus(assignedQuantity.compareTo(plan.getVolume()) >= 0 ? 2 : 1);
+// productOrderPlan.setAssignedQuantity(lastRemainingVolume);
+// productionPlanMapper.updateById(plan);
+// productOrderPlanMapper.insert(productOrderPlan);
+// break;
+// }
+//
+// // 鍒嗛厤褰撳墠璁″垝鏂规暟
+// BigDecimal assignedQuantity = Optional.ofNullable(plan.getAssignedQuantity()).orElse(BigDecimal.ZERO).add(remainingVolume);
+// plan.setAssignedQuantity(assignedQuantity);
+// plan.setStatus(assignedQuantity.compareTo(plan.getVolume()) >= 0 ? 2 : 1);
+// productOrderPlan.setAssignedQuantity(remainingVolume);
+// // 鏇存柊鐢熶骇璁″垝
+// productionPlanMapper.updateById(plan);
+// // 鍒涘缓鍏宠仈鍏崇郴
+// productOrderPlanMapper.insert(productOrderPlan);
+// assignedVolume = assignedVolume.add(remainingVolume);
+// }
+//
+// for (ProductionPlan plan : plans) {
+// BigDecimal assignedQuantity = Optional.ofNullable(plan.getAssignedQuantity()).orElse(BigDecimal.ZERO);
+// BigDecimal volume = Optional.ofNullable(plan.getVolume()).orElse(BigDecimal.ZERO);
+// if (assignedQuantity.compareTo(BigDecimal.ZERO) <= 0) {
+// plan.setStatus(0);
+// } else if (assignedQuantity.compareTo(volume) >= 0) {
+// plan.setStatus(2);
+// } else {
+// plan.setStatus(1);
+// }
+// productionPlanMapper.updateById(plan);
+// }
+// return true;
+// }
+//
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean add(ProductionPlanDto productionPlanDto) {
+// if (StringUtils.isEmpty(productionPlanDto.getApplyNo())) {
+// throw new ServiceException("鏂板澶辫触锛岀敵璇峰崟缂栧彿涓嶈兘涓虹┖");
+// }
+// Long count = productionPlanMapper.selectCount(Wrappers.<ProductionPlan>lambdaQuery()
+// .eq(ProductionPlan::getApplyNo, productionPlanDto.getApplyNo()));
+// if (count > 0) {
+// throw new ServiceException("鏂板澶辫触锛岀敵璇峰崟缂栧彿 " + productionPlanDto.getApplyNo() + " 宸插瓨鍦�");
+// }
+// productionPlanDto.setDataSourceType(DataSourceTypeEnum.MANUAL.getCode());
+// productionPlanDto.setStatus(0);
+// productionPlanMapper.insert(productionPlanDto);
+// return true;
+// }
+//
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean update(ProductionPlanDto productionPlanDto) {
+// if (productionPlanDto == null || productionPlanDto.getId() == null) {
+// throw new ServiceException("缂栬緫澶辫触,鏁版嵁涓嶈兘涓虹┖");
+// }
+// ProductionPlan productionPlan = getById(productionPlanDto.getId());
+// if (productionPlan == null) {
+// throw new ServiceException("缂栬緫澶辫触,涓荤敓浜ц鍒掍笉瀛樺湪");
+// }
+//
+// if (StringUtils.isNotEmpty(productionPlanDto.getApplyNo())
+// && !productionPlanDto.getApplyNo().equals(productionPlan.getApplyNo())) {
+//
+// Long count = productionPlanMapper.selectCount(Wrappers.<ProductionPlan>lambdaQuery()
+// .eq(ProductionPlan::getApplyNo, productionPlanDto.getApplyNo())
+// .ne(ProductionPlan::getId, productionPlanDto.getId())); // 鎺掗櫎鑷韩
+//
+// if (count > 0) {
+// throw new ServiceException("缂栬緫澶辫触锛岀敵璇峰崟缂栧彿 " + productionPlanDto.getApplyNo() + " 宸茶鍗犵敤");
+// }
+// }
+// // 宸蹭笅鍙戠姸鎬侊紝涓嶈兘缂栬緫
+// if (productionPlan.getStatus() != 0) {
+// throw new BaseException("缂栬緫澶辫触,璇ョ敓浜ц鍒掑凡涓嬪彂鎴栭儴鍒嗕笅鍙戠姸鎬�,绂佹缂栬緫");
+// }
+//
+// // 鏌ヨ鏄惁鏈夊叧鑱旇鍗�
+// boolean hasProductOrderPlan = productOrderPlanMapper.selectList(Wrappers.<ProductOrderPlan>lambdaQuery()
+// .eq(ProductOrderPlan::getProductionPlanId, productionPlanDto.getId()))
+// .stream().anyMatch(p -> p.getProductOrderId() != null);
+//
+// if (hasProductOrderPlan) {
+// if (productionPlanDto.getVolume().compareTo(productionPlan.getVolume()) < 0) {
+// throw new BaseException("鏂规暟涓嶈兘閫掑噺");
+// }
+// }
+//
+// return productionPlanMapper.updateById(productionPlanDto) > 0;
+// }
+//
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean delete(List<Long> ids) {
+// // 濡傛灉瀛樺湪宸蹭笅鍙戠殑璁″垝锛屽垯涓嶈兘鍒犻櫎
+// if (productionPlanMapper.selectList(Wrappers.<ProductionPlan>lambdaQuery().in(ProductionPlan::getId, ids)).stream().anyMatch(p -> p.getStatus() == 1 || p.getStatus() == 2)) {
+// throw new BaseException("鍒犻櫎澶辫触锛屽瓨鍦ㄥ凡涓嬪彂鎴栭儴鍒嗕笅鍙戠殑璁″垝");
+// }
+// // 濡傛灉鏈夊叧鑱旇鍗曪紝鍒欎笉鑳藉垹闄�
+// if (productOrderPlanMapper.selectList(Wrappers.<ProductOrderPlan>lambdaQuery().in(ProductOrderPlan::getProductionPlanId, ids)).stream().anyMatch(p -> p.getProductOrderId() != null)) {
+// throw new BaseException("鍒犻櫎澶辫触锛屽瓨鍦ㄥ叧鑱旇鍗�");
+// }
+//
+// return productionPlanMapper.deleteBatchIds(ids) > 0;
+// }
+//
+// /**
+// * 鍚屾鏁版嵁
+// */
+// @Transactional(rollbackFor = Exception.class)
+// public void syncProdData(Integer dataSyncType) {
+// if (!syncLock.tryLock()) {
+// log.warn("鍚屾姝e湪杩涜涓紝鏈 {} 鍚屾璇锋眰琚烦杩�", dataSyncType == 1 ? "鎵嬪姩鍚屾" : "瀹氭椂浠诲姟鍚屾");
+// return;
+// }
+//
+// try {
+// JSONArray searchConditions = new JSONArray();
+// JSONObject condition = new JSONObject();
+// condition.put("key", "processApprovedResult");
+// JSONArray valueArray = new JSONArray();
+// valueArray.add("agree");
+//
+// condition.put("value", valueArray);
+// condition.put("type", "ARRAY");
+// condition.put("operator", "in");
+// condition.put("componentName", "SelectField");
+// searchConditions.add(condition);
+//
+// String searchFieldJson = searchConditions.toJSONString();
+//
+// JSONArray dataArr = AliDingUtils.getFormDataList(aliDingConfig, aliDingConfig.getProducePlanFormUuid(), searchFieldJson, this, ProductionPlan::getFormModifiedTime);
+//
+// if (dataArr.isEmpty()) {
+// log.info("娌℃湁鏇村鏂版暟鎹渶瑕佸悓姝�");
+// return;
+// }
+//
+// // 瑙f瀽骞朵繚瀛樻暟鎹�
+// List<ProductionPlan> list = parseProductionPlans(dataArr, dataSyncType, dataArr.size());
+// if (!list.isEmpty()) {
+// // 澶勭悊鏇存柊鎴栨柊澧�
+// int affected = processSaveOrUpdate(list);
+// log.info("鏁版嵁鍚屾瀹屾垚锛屽叡鍚屾 {} 鏉℃暟鎹�", affected);
+// }
+//
+// } catch (Exception e) {
+// log.error("鍚屾鐢熶骇璁″垝寮傚父", e);
+// } finally {
+// // 閲婃斁閿�
+// syncLock.unlock();
+// }
+// }
+//
+// private List<ProductionPlan> parseProductionPlans(JSONArray dataArr, Integer dataSyncType, Integer totalCount) {
+// List<ProductionPlan> list = new ArrayList<>();
+// LocalDateTime now = LocalDateTime.now();
+//
+// for (int i = 0; i < dataArr.size(); i++) {
+// JSONObject item = dataArr.getJSONObject(i);
+// String formInstanceId = item.getString("formInstanceId");
+// String serialNo = item.getString("serialNo");
+//
+// JSONObject originator = item.getJSONObject("originator");
+// String originatorName = originator != null && originator.containsKey("userName")
+// ? originator.getJSONObject("userName").getString("nameInChinese") : "鏈煡";
+//
+// JSONObject formData = item.getJSONObject("formData");
+// JSONArray tableArr = formData.getJSONArray("tableField_l7fytfcn");
+// if (tableArr == null || tableArr.isEmpty()) {
+// continue;
+// }
+//
+// for (int j = 0; j < tableArr.size(); j++) {
+// JSONObject row = tableArr.getJSONObject(j);
+// ProductionPlan plan = new ProductionPlan();
+//
+// plan.setFormInstanceId(formInstanceId);
+// plan.setSerialNo(serialNo);
+// plan.setApplyNo(formData.getString("textField_l7fytfco"));
+// plan.setCustomerName(formData.getString("textField_lbkozohg"));
+//
+// String materialCode = row.getString("textField_l9xo62q5");
+// // 鏍规嵁鐗╂枡缂栫爜鏌ヨ鐗╂枡淇℃伅琛紝鍏宠仈鐗╂枡ID
+// if (StringUtils.isNotEmpty(materialCode)) {
+// LambdaQueryWrapper<ProductMaterialSku> skuQueryWrapper = new LambdaQueryWrapper<>();
+// skuQueryWrapper.eq(ProductMaterialSku::getMaterialCode, materialCode);
+// ProductMaterialSku sku = productMaterialSkuService.getOne(skuQueryWrapper);
+// if (sku != null) {
+// plan.setProductMaterialSkuId(sku.getId());
+// }
+// }
+//
+// plan.setLength(row.getInteger("numberField_lb7lgatg_value"));
+// plan.setWidth(row.getInteger("numberField_lb7lgath_value"));
+// plan.setHeight(row.getInteger("numberField_lb7lgati_value"));
+// plan.setQuantity(row.getInteger("numberField_lb7lgatj_value"));
+// plan.setVolume(row.getBigDecimal("numberField_l7fytfd3_value"));
+// plan.setStrength(row.getString("radioField_m9urarr2_id"));
+//
+// JSONArray dateArr = row.getJSONArray("cascadeDateField_lfxqqluw");
+// if (dateArr != null && dateArr.size() == 2) {
+// try {
+// long start = Long.parseLong(dateArr.getString(0));
+// long end = Long.parseLong(dateArr.getString(1));
+//
+// Date startDate = Date.from(Instant.ofEpochMilli(start)
+// .atZone(ZoneId.systemDefault())
+// .toLocalDate()
+// .atStartOfDay(ZoneId.systemDefault())
+// .toInstant());
+// Date endDate = Date.from(Instant.ofEpochMilli(end)
+// .atZone(ZoneId.systemDefault())
+// .toLocalDate()
+// .atStartOfDay(ZoneId.systemDefault())
+// .toInstant());
+//
+// plan.setStartDate(startDate);
+// plan.setEndDate(endDate);
+// } catch (Exception e) {
+// log.warn("瑙f瀽鏃ユ湡澶辫触: {}", dateArr);
+// }
+// }
+//
+// plan.setSubmitter(originatorName);
+// plan.setSubmitOrg("瀹佸涓垱缁胯兘瀹炰笟闆嗗洟鏈夐檺鍏徃");
+// plan.setRemarkOne(formData.getString("textareaField_l7fytfcy"));
+// plan.setRemarkTwo(formData.getString("textField_l7fytfcx"));
+// plan.setCreatorName(originatorName);
+//
+// JSONObject modifyUser = item.getJSONObject("modifyUser");
+// if (modifyUser != null && modifyUser.containsKey("userName")) {
+// plan.setModifierName(modifyUser.getJSONObject("userName").getString("nameInChinese"));
+// }
+//
+// plan.setFormCreatedTime(AliDingUtils.parseUtcTime(item.getString("createdTimeGMT")));
+// plan.setFormModifiedTime(AliDingUtils.parseUtcTime(item.getString("modifiedTimeGMT")));
+// plan.setDataSourceType(DataSourceTypeEnum.DING_TALK.getCode());
+// plan.setCreateTime(now);
+// plan.setUpdateTime(now);
+// plan.setTotalCount(totalCount);
+//
+// list.add(plan);
+// }
+// }
+// return list;
+// }
+//
+// private int processSaveOrUpdate(List<ProductionPlan> list) {
+// if (list == null || list.isEmpty()) {
+// return 0;
+// }
+// int affected = 0;
+//
+// // 鍘婚噸 formInstanceId
+// Set<String> formIds = list.stream()
+// .map(ProductionPlan::getFormInstanceId)
+// .collect(Collectors.toSet());
+//
+// // 鏌ヨ鏁版嵁搴撳凡鏈夋暟鎹�
+// List<ProductionPlan> existList = this.list(new LambdaQueryWrapper<ProductionPlan>().in(ProductionPlan::getFormInstanceId, formIds));
+//
+// // Map (formInstanceId + materialCode)
+// Map<String, ProductionPlan> existMap = new HashMap<>();
+// for (ProductionPlan p : existList) {
+// String key = p.getFormInstanceId() + "_" + p.getProductMaterialSkuId();
+// existMap.put(key, p);
+// }
+//
+// // 閬嶅巻鍚屾鏁版嵁
+// for (ProductionPlan plan : list) {
+// String key = plan.getFormInstanceId() + "_" + plan.getProductMaterialSkuId();
+// ProductionPlan exist = existMap.get(key);
+// if (exist == null) {
+// // 鏂板
+// this.save(plan);
+// affected++;
+// log.info("鏂板鏁版嵁 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getProductMaterialSkuId());
+// } else {
+// // 鍒ゆ柇鏄惁闇�瑕佹洿鏂�
+// if (exist.getFormModifiedTime() == null || !exist.getFormModifiedTime().equals(plan.getFormModifiedTime())) {
+// plan.setId(exist.getId());
+// plan.setCreateTime(exist.getCreateTime());
+// this.updateById(plan);
+// affected++;
+// log.info("鏇存柊鏁版嵁 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getProductMaterialSkuId());
+// }
+// }
+// }
+// return affected;
+// }
+//
+// @Override
+// public List<ProductionPlanSummaryDto> summaryByProductType(ProductionPlanSummaryDto query) {
+// return baseMapper.selectSummaryByProductType(query);
+// }
+//
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public void importProdData(MultipartFile file) {
+// if (file == null || file.isEmpty()) {
+// throw new ServiceException("瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+// }
+// ExcelUtil<ProductionPlanImportDto> excelUtil = new ExcelUtil<>(ProductionPlanImportDto.class);
+// List<ProductionPlanImportDto> list;
+// try {
+// list = excelUtil.importExcel(file.getInputStream());
+// } catch (Exception e) {
+// log.error("鐢熶骇闇�姹侲xcel瀵煎叆澶辫触", e);
+// throw new ServiceException("Excel瑙f瀽澶辫触");
+// }
+//
+// if (list == null || list.isEmpty()) {
+// throw new ServiceException("Excel娌℃湁鏁版嵁");
+// }
+//
+// Set<String> applyNos = new HashSet<>();
+// Set<String> materialCodes = new HashSet<>();
+// for (int i = 0; i < list.size(); i++) {
+// ProductionPlanImportDto dto = list.get(i);
+// String applyNo = dto.getApplyNo();
+// String materialCode = dto.getMaterialCode();
+//
+// if (StringUtils.isEmpty(applyNo)) {
+// throw new ServiceException("瀵煎叆澶辫触锛氱 " + (i + 2) + " 琛岀敵璇峰崟缂栧彿涓嶈兘涓虹┖");
+// }
+// if (!applyNos.add(applyNo)) {
+// throw new ServiceException("瀵煎叆澶辫触锛欵xcel 涓瓨鍦ㄩ噸澶嶇殑鐢宠鍗曠紪鍙�: " + applyNo);
+// }
+// if (StringUtils.isEmpty(materialCode)) {
+// throw new ServiceException("瀵煎叆澶辫触锛氱 " + (i + 2) + " 琛岀墿鏂欑紪鐮佷笉鑳戒负绌�");
+// }
+//
+// String strength = dto.getStrength();
+// if (StringUtils.isNotEmpty(strength)) {
+// if (!"A3.5".equals(strength) && !"A5.0".equals(strength)) {
+// throw new ServiceException("瀵煎叆澶辫触锛氱 " + (i + 2) + " 琛屽己搴﹀彧鑳芥槸 A3.5 鎴� A5.0");
+// }
+// }
+//
+// materialCodes.add(materialCode);
+// }
+//
+// // 鐢宠鍗曠紪鍙锋槸鍚﹀凡瀛樺湪
+// Long existApplyNoCount = baseMapper.selectCount(Wrappers.<ProductionPlan>lambdaQuery()
+// .in(ProductionPlan::getApplyNo, applyNos));
+// if (existApplyNoCount > 0) {
+// List<String> existApplyNos = baseMapper.selectList(Wrappers.<ProductionPlan>lambdaQuery()
+// .in(ProductionPlan::getApplyNo, applyNos))
+// .stream().map(ProductionPlan::getApplyNo).collect(Collectors.toList());
+// throw new ServiceException("瀵煎叆澶辫触锛岀敵璇峰崟缂栧彿宸插瓨鍦�: " + String.join(", ", existApplyNos));
+// }
+//
+// Map<String, Long> skuMap = productMaterialSkuService.list(Wrappers.<ProductMaterialSku>lambdaQuery()
+// .in(ProductMaterialSku::getMaterialCode, materialCodes))
+// .stream().collect(Collectors.toMap(ProductMaterialSku::getMaterialCode, ProductMaterialSku::getId, (k1, k2) -> k1));
+//
+// List<String> missingCodes = materialCodes.stream()
+// .filter(code -> !skuMap.containsKey(code))
+// .collect(Collectors.toList());
+// if (!missingCodes.isEmpty()) {
+// throw new ServiceException("瀵煎叆澶辫触锛屼互涓嬬墿鏂欑紪鐮佷笉瀛樺湪: " + String.join(", ", missingCodes));
+// }
+//
+// LocalDateTime now = LocalDateTime.now();
+// List<ProductionPlan> entityList = list.stream().map(dto -> {
+// ProductionPlan entity = new ProductionPlan();
+// BeanUtils.copyProperties(dto, entity);
+// entity.setProductMaterialSkuId(skuMap.get(dto.getMaterialCode()));
+// entity.setAssignedQuantity(BigDecimal.ZERO);
+// entity.setDataSourceType(DataSourceTypeEnum.MANUAL.getCode());
+// entity.setStatus(0);
+// entity.setCreateTime(now);
+// entity.setUpdateTime(now);
+// return entity;
+// }).collect(Collectors.toList());
+//
+// this.saveBatch(entityList);
+// }
+//
+// @Override
+// public void exportProdData(HttpServletResponse response, List<Long> ids) {
+// List<ProductionPlan> list;
+// if (ids != null && !ids.isEmpty()) {
+// list = baseMapper.selectBatchIds(ids);
+// } else {
+// list = baseMapper.selectList(null);
+// }
+//
+// List<ProductionPlanImportDto> exportList = new ArrayList<>();
+// for (ProductionPlan entity : list) {
+// ProductionPlanImportDto dto = new ProductionPlanImportDto();
+// BeanUtils.copyProperties(entity, dto);
+// exportList.add(dto);
+// }
+// ExcelUtil<ProductionPlanImportDto> util = new ExcelUtil<>(ProductionPlanImportDto.class);
+// util.exportExcel(response, exportList, "閿�鍞敓浜ч渶姹傛暟鎹�");
+// }
+//
+//}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductInputServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductInputServiceImpl.java
index 49765c0..252e408 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductInputServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductInputServiceImpl.java
@@ -1,24 +1,20 @@
package com.ruoyi.production.service.impl;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.production.dto.ProductionProductInputDto;
import com.ruoyi.production.mapper.ProductionProductInputMapper;
import com.ruoyi.production.pojo.ProductionProductInput;
import com.ruoyi.production.service.ProductionProductInputService;
-import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐鎶曞叆琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@Service
-@AllArgsConstructor
public class ProductionProductInputServiceImpl extends ServiceImpl<ProductionProductInputMapper, ProductionProductInput> implements ProductionProductInputService {
- @Autowired
- private ProductionProductInputMapper productionProductInputMapper;
- @Override
- public IPage<ProductionProductInputDto> listPageProductionProductInputDto(Page page, ProductionProductInputDto productionProductInputDto) {
- return productionProductInputMapper.listPageProductionProductInputDto(page, productionProductInputDto);
- }
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index fa34114..9ec1e06 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -1,348 +1,20 @@
package com.ruoyi.production.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.basic.mapper.ProductMapper;
-import com.ruoyi.basic.mapper.ProductModelMapper;
-import com.ruoyi.basic.pojo.Product;
-import com.ruoyi.basic.pojo.ProductModel;
-import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.bean.BeanUtils;
-import com.ruoyi.procurementrecord.utils.StockUtils;
-import com.ruoyi.production.dto.ProductStructureDto;
-import com.ruoyi.production.dto.ProductionProductMainDto;
-import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
-import com.ruoyi.production.service.ProductionProductMainService;
-import com.ruoyi.project.system.domain.SysUser;
-import com.ruoyi.project.system.mapper.SysUserMapper;
-import com.ruoyi.quality.mapper.*;
-import com.ruoyi.quality.pojo.*;
-import com.ruoyi.quality.service.IQualityInspectService;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.production.mapper.ProductionProductMainMapper;
+import com.ruoyi.production.pojo.ProductionProductMain;
+import com.ruoyi.production.service.ProductionProductMainService;
+import org.springframework.stereotype.Service;
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@Service
-@AllArgsConstructor
-@Transactional(rollbackFor = Exception.class)
public class ProductionProductMainServiceImpl extends ServiceImpl<ProductionProductMainMapper, ProductionProductMain> implements ProductionProductMainService {
- private IQualityInspectService qualityInspectService;
- private ProductionProductMainMapper productionProductMainMapper;
-
-
- private ProductWorkOrderMapper productWorkOrderMapper;
-
- private ProductProcessRouteItemMapper productProcessRouteItemMapper;
- private SysUserMapper userMapper;
-
- private ProductionProductOutputMapper productionProductOutputMapper;
-
-
- private ProductModelMapper productModelMapper;
-
- private QualityInspectMapper qualityInspectMapper;
- private QualityUnqualifiedMapper qualityUnqualifiedMapper;
-
- private ProductProcessMapper productProcessMapper;
- private ProductProcessRouteMapper productProcessRouteMapper;
-
- private ProductMapper productMapper;
-
-
- private QualityTestStandardParamMapper qualityTestStandardParamMapper;
- private QualityTestStandardMapper qualityTestStandardMapper;
-
- private QualityInspectParamMapper qualityInspectParamMapper;
-
- private ProductStructureMapper productStructureMapper;
-
- private ProductionProductInputMapper productionProductInputMapper;
-
- private ProductOrderMapper productOrderMapper;
-
- private SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
-
- private StockUtils stockUtils;
-
-
- @Override
- public IPage<ProductionProductMainDto> listPageProductionProductMainDto(Page page, ProductionProductMainDto productionProductMainDto) {
- return productionProductMainMapper.listPageProductionProductMainDto(page, productionProductMainDto);
- }
-
- @Override
- public Boolean addProductMain(ProductionProductMainDto dto) {
- SysUser user = userMapper.selectUserById(dto.getUserId());
- ProductionProductMain productionProductMain = new ProductionProductMain();
- //褰撳墠宸ヨ壓璺嚎瀵瑰簲鐨勫伐搴忚鎯�
- ProductProcessRouteItem productProcessRouteItem = productProcessRouteItemMapper.selectById(dto.getProductProcessRouteItemId());
- if (productProcessRouteItem == null) {
- throw new RuntimeException("宸ヨ壓璺嚎椤逛笉瀛樺湪");
- }
- //褰撳墠鍏蜂綋宸ュ簭
- ProductProcess productProcess = productProcessMapper.selectById(productProcessRouteItem.getProcessId());
- //宸ヨ壓璺嚎涓綋鍓嶅伐搴忓搴旂殑浜у嚭瑙勬牸鍨嬪彿
- ProductModel productModel = productModelMapper.selectById(productProcessRouteItem.getProductModelId());
- //鏌ヨ璇ョ敓浜ц鍗曞搴旂殑bom
- ProductProcessRoute productProcessRoute = productProcessRouteMapper.selectById(productProcessRouteItem.getProductRouteId());
- /*鏂板鎶ュ伐涓昏〃*/
- //鏌ヨ鏈�澶ф姤宸ョ紪鍙�
- String datePrefix = "BG" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
- QueryWrapper<ProductionProductMain> queryWrapper = new QueryWrapper<>();
- queryWrapper.select("MAX(product_no) as maxNo")
- .likeRight("product_no", datePrefix);
- List<Map<String, Object>> resultList = productionProductMainMapper.selectMaps(queryWrapper);
- int sequenceNumber = 1;
- if (resultList != null && !resultList.isEmpty()) {
- Map<String, Object> result = resultList.get(0);
- if (result != null) {
- Object maxNoObj = result.get("maxNo");
- if (maxNoObj != null) {
- String lastNo = maxNoObj.toString();
- System.out.println("lastNo: " + lastNo);
- if (lastNo.startsWith(datePrefix)) {
- try {
- String seqStr = lastNo.substring(datePrefix.length());
- sequenceNumber = Integer.parseInt(seqStr) + 1;
- } catch (NumberFormatException e) {
- sequenceNumber = 1;
- }
- }
- }
- }
- }
- String productNo = String.format("%s%03d", datePrefix, sequenceNumber);
- productionProductMain.setProductNo(productNo);
- productionProductMain.setUserId(dto.getUserId());
- productionProductMain.setUserName(dto.getUserName());
- productionProductMain.setProductProcessRouteItemId(dto.getProductProcessRouteItemId());
- productionProductMain.setWorkOrderId(dto.getWorkOrderId());
- productionProductMain.setStatus(0);
- productionProductMainMapper.insert(productionProductMain);
- /*鏂板鎶ュ伐鎶曞叆琛�*/
- List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomAndProcess(productProcessRoute.getBomId(), productProcess.getId());
- if (productStructureDtos.size() == 0) {
- //濡傛灉璇ュ伐搴忔病鏈変骇鍝佺粨鏋勭殑鎶曞叆鍝�,閭h繖涓姇鍏ュ搧鍜屼骇鍑哄搧鏄悓涓�涓�
- ProductStructureDto productStructureDto = new ProductStructureDto();
- productStructureDto.setProductModelId(productProcessRouteItem.getProductModelId());
- productStructureDto.setUnitQuantity(BigDecimal.ONE);
- productStructureDtos.add(productStructureDto);
- }
- for (ProductStructureDto productStructureDto : productStructureDtos) {
-
- ProductionProductInput productionProductInput = new ProductionProductInput();
- productionProductInput.setProductModelId(productStructureDto.getProductModelId());
- productionProductInput.setQuantity(productStructureDto.getUnitQuantity().multiply(dto.getQuantity()));
- productionProductInput.setProductMainId(productionProductMain.getId());
- productionProductInputMapper.insert(productionProductInput);
- stockUtils.substractStock(productStructureDto.getProductModelId(), productionProductInput.getQuantity(), StockOutQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_OUT.getCode(), productionProductMain.getId());
-
- }
- /*鏂板鎶ュ伐浜у嚭琛�*/
- ProductionProductOutput productionProductOutput = new ProductionProductOutput();
- productionProductOutput.setProductMainId(productionProductMain.getId());
- productionProductOutput.setProductModelId(productProcessRouteItem.getProductModelId());
- productionProductOutput.setQuantity(dto.getQuantity() != null ? dto.getQuantity() : BigDecimal.ZERO);
- productionProductOutput.setScrapQty(dto.getScrapQty() != null ? dto.getScrapQty() : BigDecimal.ZERO);
- productionProductOutputMapper.insert(productionProductOutput);
- //鍚堟牸鏁伴噺=鎶ュ伐鏁伴噺-鎶ュ簾鏁伴噺
- BigDecimal productQty = productionProductOutput.getQuantity().subtract(productionProductOutput.getScrapQty());
- //鍙湁鍚堟牸鏁伴噺>0鎵嶈兘澧炲姞鐩稿簲鏁版嵁
- if (productQty.compareTo(BigDecimal.ZERO) > 0) {
- /*鏂板璐ㄦ*/
- List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId()));
- if (productProcessRouteItem.getIsQuality()) {
- //瀵瑰簲鐨勮繃绋嬫鎴栬�呭嚭鍘傛
- int inspectType = 1;
- String process = productProcess.getName();//宸ュ簭
- if (productProcessRouteItem.getDragSort() == productProcessRouteItems.size()) {
- //鏈�鍚庝竴閬撳伐搴忕敓鎴愬嚭鍘傛
- inspectType = 2;
- process = null;
- }
- Product product = productMapper.selectById(productModel.getProductId());
- QualityInspect qualityInspect = new QualityInspect();
- qualityInspect.setProductId(product.getId());
- qualityInspect.setProductName(product.getProductName());
- qualityInspect.setModel(productModel.getModel());
- qualityInspect.setUnit(productModel.getUnit());
- qualityInspect.setQuantity(productQty);
- qualityInspect.setProcess(process);
- qualityInspect.setInspectState(0);
- qualityInspect.setInspectType(inspectType);
- qualityInspect.setProductMainId(productionProductMain.getId());
- qualityInspect.setProductModelId(productModel.getId());
- qualityInspectMapper.insert(qualityInspect);
- List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), inspectType, process);
- if (qualityTestStandard.size() > 0) {
- qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId());
- qualityInspectMapper.updateById(qualityInspect);
- qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
- .eq(QualityTestStandardParam::getTestStandardId, qualityTestStandard.get(0).getId()))//榛樿鑾峰彇鏈�鏂扮殑
- .forEach(qualityTestStandardParam -> {
- QualityInspectParam param = new QualityInspectParam();
- BeanUtils.copyProperties(qualityTestStandardParam, param);
- param.setId(null);
- param.setInspectId(qualityInspect.getId());
- qualityInspectParamMapper.insert(param);
- });
- }
- }else {
- //鐩存帴鍏ュ簱
- stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId());
- }
- /*鏇存柊宸ュ崟鍜岀敓浜ц鍗�*/
- ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(dto.getWorkOrderId());
- productWorkOrder.setCompleteQuantity(productWorkOrder.getCompleteQuantity().add(productQty));
- if (ObjectUtils.isNull(productWorkOrder.getActualStartTime())) {
- productWorkOrder.setActualStartTime(LocalDate.now());//瀹為檯寮�濮嬫椂闂�
- }
- if (productWorkOrder.getCompleteQuantity().compareTo(productWorkOrder.getPlanQuantity()) == 0) {
- productWorkOrder.setActualEndTime(LocalDate.now());//瀹為檯缁撴潫鏃堕棿
- }
- productWorkOrderMapper.updateById(productWorkOrder);
- //鐢熶骇璁㈠崟
- ProductOrder productOrder = productOrderMapper.selectById(productWorkOrder.getProductOrderId());
- if (ObjectUtils.isNull(productOrder.getStartTime())) {
- productOrder.setStartTime(LocalDateTime.now());//寮�濮嬫椂闂�
- }
- if (productProcessRouteItem.getDragSort() == productProcessRouteItems.size()) {
- //濡傛灉鏄渶鍚庝竴閬撳伐搴忔姤宸ヤ箣鍚庣敓浜ц鍗曞畬鎴愭暟閲�+
- productOrder.setCompleteQuantity(productOrder.getCompleteQuantity().add(productQty));
- if (productOrder.getCompleteQuantity().compareTo(productOrder.getQuantity()) == 0) {
- productOrder.setEndTime(LocalDateTime.now());//缁撴潫鏃堕棿
- }
- }
- productOrderMapper.updateById(productOrder);
- /*娣诲姞鐢熶骇鏍哥畻 鍖哄垎宸ュ簭鏄浠惰繕鏄鏃�*/
- BigDecimal workHours = (productProcess.getType() == 1)
- ? productProcess.getSalaryQuota().multiply(productQty)
- : productProcess.getSalaryQuota();
-
- SalesLedgerProductionAccounting salesLedgerProductionAccounting = SalesLedgerProductionAccounting.builder()
- .productMainId(productionProductMain.getId())
- .schedulingUserId(user.getUserId())
- .schedulingUserName(user.getNickName())
- .finishedNum(productQty)
- .workHours(workHours)
- .process(productProcess.getName())
- .schedulingDate(LocalDate.now())
- .tenantId(dto.getTenantId())
- .build();
- salesLedgerProductionAccountingMapper.insert(salesLedgerProductionAccounting);
- }
- //濡傛灉鎶ュ簾鏁伴噺>0,闇�瑕佽繘鍏ユ姤搴熺殑搴撳瓨
- if (ObjectUtils.isNotEmpty(dto.getScrapQty())) {
- if (dto.getScrapQty().compareTo(BigDecimal.ZERO) > 0) {
- stockUtils.addUnStock(productModel.getId(), dto.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId());
- }
- }
- return true;
- }
-
- @Override
- public Boolean removeProductMain(Long id) {
- //鍒ゆ柇璇ユ潯鎶ュ伐鏄惁涓嶅悎鏍煎鐞�,濡傛灉涓嶅悎鏍煎鐞嗕簡锛屽垯涓嶅厑璁稿垹闄�
- List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(Wrappers.<QualityInspect>lambdaQuery().eq(QualityInspect::getProductMainId, id));
- if (qualityInspects.size() > 0){
- List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.selectList(Wrappers.<QualityUnqualified>lambdaQuery()
- .in(QualityUnqualified::getInspectId, qualityInspects.stream().map(QualityInspect::getId).collect(Collectors.toList())));
- if (qualityUnqualifieds.size() > 0 && qualityUnqualifieds.get(0).getInspectState()==1) {
- throw new ServiceException("璇ユ潯鎶ュ伐宸茬粡涓嶅悎鏍煎鐞嗕簡锛屼笉鍏佽鍒犻櫎");
- }
- }
- ProductionProductMain productionProductMain = productionProductMainMapper.selectById(id);
- //璇ユ姤宸ュ搴旂殑宸ヨ壓璺嚎璇︽儏
- ProductProcessRouteItem productProcessRouteItem = productProcessRouteItemMapper.selectById(productionProductMain.getProductProcessRouteItemId());
- ProductionProductOutput productionProductOutput = productionProductOutputMapper.selectList(Wrappers.<ProductionProductOutput>lambdaQuery().eq(ProductionProductOutput::getProductMainId, productionProductMain.getId())).get(0);
- /*鍒犻櫎鏍哥畻*/
- salesLedgerProductionAccountingMapper.delete(
- new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
- .eq(SalesLedgerProductionAccounting::getProductMainId, productionProductMain.getId())
- );
- /*鏇存柊宸ュ崟鍜岀敓浜ц鍗�*/
- ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
- if (productWorkOrder != null && productionProductOutput != null) {
- BigDecimal outputQty = productionProductOutput.getQuantity() == null ? BigDecimal.ZERO : productionProductOutput.getQuantity();
- BigDecimal scrapQty = productionProductOutput.getScrapQty() == null ? BigDecimal.ZERO : productionProductOutput.getScrapQty();
- BigDecimal completeQty = productWorkOrder.getCompleteQuantity() == null ? BigDecimal.ZERO : productWorkOrder.getCompleteQuantity();
-
- BigDecimal validQuantity = outputQty.subtract(scrapQty);
-
- productWorkOrder.setCompleteQuantity(completeQty.subtract(validQuantity));
- productWorkOrder.setActualEndTime(null);
- productWorkOrderMapper.updateById(productWorkOrder);
- } else {
- throw new ServiceException("鎿嶄綔澶辫触锛氬伐鍗曚俊鎭垨浜у嚭璁板綍涓嶅瓨鍦�");
- }
- //鍒ゆ柇鏄惁鏄渶鍚庝竴閬撳伐搴�
- List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId()));
- if (productProcessRouteItem.getDragSort() != null && productProcessRouteItems != null && productProcessRouteItem.getDragSort() == productProcessRouteItems.size()) {
- ProductOrder productOrder = productOrderMapper.selectById(productWorkOrder.getProductOrderId());
- if (productOrder != null) {
- BigDecimal orderCompleteQty = productOrder.getCompleteQuantity() == null ? BigDecimal.ZERO : productOrder.getCompleteQuantity();
- BigDecimal totalQty = productionProductOutput.getQuantity() != null ? productionProductOutput.getQuantity() : BigDecimal.ZERO;
- BigDecimal scrapQty = productionProductOutput.getScrapQty() != null ? productionProductOutput.getScrapQty() : BigDecimal.ZERO;
- BigDecimal actualQualifiedQty = totalQty.subtract(scrapQty);
- BigDecimal newCompleteQty = orderCompleteQty.subtract(actualQualifiedQty);
- productOrder.setCompleteQuantity(newCompleteQty.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : newCompleteQty);
- productOrder.setEndTime(null);
- productOrderMapper.updateById(productOrder);
- } else {
- throw new ServiceException("鍏宠仈鐨勭敓浜ц鍗曚笉瀛樺湪");
- }
- }
- //鍒犻櫎璐ㄦ
- qualityInspectMapper.selectList(
- new LambdaQueryWrapper<QualityInspect>()
- .eq(QualityInspect::getProductMainId, productionProductMain.getId())
- ).forEach(q -> {
- qualityInspectParamMapper.delete(
- new LambdaQueryWrapper<QualityInspectParam>()
- .eq(QualityInspectParam::getInspectId, q.getId()));
- qualityInspectMapper.deleteById(q.getId());
- stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
- });
-
- // 鍒犻櫎浜у嚭璁板綍
- productionProductOutputMapper.delete(new LambdaQueryWrapper<ProductionProductOutput>()
- .eq(ProductionProductOutput::getProductMainId, productionProductMain.getId()));
- //鍒犻櫎鎶曞叆璁板綍
- productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
- .eq(ProductionProductInput::getProductMainId, productionProductMain.getId()));
- //鍒犻櫎鎶ュ簾鐨勫叆搴撹褰�
- stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode());
- //鍒犻櫎涓嶉渶瑕佽川妫�鐨勫悎鏍煎叆搴�
- stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode());
- //鍒犻櫎鎶曞叆瀵瑰簲鐨勫嚭搴撹褰�
- stockUtils.deleteStockOutRecord(productionProductMain.getId(), StockOutQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_OUT.getCode());
- // 鍒犻櫎涓昏〃
- productionProductMainMapper.deleteById(productionProductMain.getId());
- return true;
- }
-
- @Override
- public ArrayList<Long> listMain(List<Long> idList) {
- return productionProductMainMapper.listMain(idList);
- }
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductOutputServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductOutputServiceImpl.java
index 654b9af..cb8e224 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductOutputServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductOutputServiceImpl.java
@@ -1,24 +1,20 @@
package com.ruoyi.production.service.impl;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.production.dto.ProductionProductOutputDto;
import com.ruoyi.production.mapper.ProductionProductOutputMapper;
import com.ruoyi.production.pojo.ProductionProductOutput;
import com.ruoyi.production.service.ProductionProductOutputService;
-import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+/**
+ * <p>
+ * 鐢熶骇鎶ュ伐浜у嚭琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-21 03:55:52
+ */
@Service
-@AllArgsConstructor
public class ProductionProductOutputServiceImpl extends ServiceImpl<ProductionProductOutputMapper, ProductionProductOutput> implements ProductionProductOutputService {
- @Autowired
- private ProductionProductOutputMapper productionProductOutputMapper;
- @Override
- public IPage<ProductionProductOutputDto> listPageProductionProductOutputDto(Page page, ProductionProductOutputDto productionProductOutputDto) {
- return productionProductOutputMapper.listPageProductionProductOutputDto(page, productionProductOutputDto);
- }
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java
deleted file mode 100644
index 7e5f58b..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.production.dto.ProductionProductMainDto;
-import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
-import com.ruoyi.production.dto.UserAccountDto;
-import com.ruoyi.production.dto.UserProductionAccountingDto;
-import com.ruoyi.production.mapper.ProductionProductMainMapper;
-import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
-import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
-import com.ruoyi.production.service.SalesLedgerProductionAccountingService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.math.BigDecimal;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:41
- */
-@Service
-@RequiredArgsConstructor
-@Slf4j
-public class SalesLedgerProductionAccountingServiceImpl extends ServiceImpl<SalesLedgerProductionAccountingMapper, SalesLedgerProductionAccounting> implements SalesLedgerProductionAccountingService {
-
- private final SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
- private final ProductionProductMainMapper productionProductMainMapper;
-
- @Override
- public IPage<SalesLedgerProductionAccountingDto> listPage(Page page, SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto) {
- IPage<SalesLedgerProductionAccountingDto> list = salesLedgerProductionAccountingMapper.listPage(page, salesLedgerProductionAccountingDto);
- list.getRecords().forEach(item -> {
- String[] split = item.getSpecificationModel().split("\\*");
- if(split.length == 2 && isNumeric(split[1])){
- // 璁$畻宸ヨ祫 = 宸ユ椂瀹氶 * 鏁伴噺 * 瑙勬牸
- item.setWages(item.getWages().multiply(new BigDecimal(split[1])));
- }
- });
- return list;
- }
-
- @Override
- public IPage<SalesLedgerProductionAccountingDto> pageProductionAccounting(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page) {
- // TODO 绠$悊鍛樻煡璇㈡墍鏈夛紝鍏朵粬浜哄彧鑳芥煡鑷繁
- boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId());
- if (!admin) {
- salesLedgerProductionAccountingDto.setSchedulingUserName(SecurityUtils.getUsername());
- }
- if (salesLedgerProductionAccountingDto.getDateType().equals("month")) {
- salesLedgerProductionAccountingDto.setEntryDate(null);
- }else {
- salesLedgerProductionAccountingDto.setEntryDateStart(null);
- salesLedgerProductionAccountingDto.setEntryDateEnd(null);
- }
- return salesLedgerProductionAccountingMapper.pageProductionAccounting(page, salesLedgerProductionAccountingDto);
- }
-
- @Override
- public IPage<ProductionProductMainDto> listProductionDetails(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page) {
- if (salesLedgerProductionAccountingDto.getDateType().equals("month")) {
- salesLedgerProductionAccountingDto.setEntryDate(null);
- }else {
- salesLedgerProductionAccountingDto.setEntryDateStart(null);
- salesLedgerProductionAccountingDto.setEntryDateEnd(null);
- }
- return productionProductMainMapper.listProductionDetails(salesLedgerProductionAccountingDto, page);
- }
-
- @Override
- public UserAccountDto getByUserId(UserProductionAccountingDto userProductionAccountingDto) {
- return salesLedgerProductionAccountingMapper.getByUserId( userProductionAccountingDto);
- }
-
- public static boolean isNumeric(String str) {
- if (str == null || str.isEmpty()) {
- return false;
- }
- // 閬嶅巻瀛楃涓茬殑姣忎釜瀛楃锛屾鏌ユ槸鍚︿负鏁板瓧
- for (int i = 0; i < str.length(); i++) {
- if (!Character.isDigit(str.charAt(i))) {
- return false;
- }
- }
- return true;
- }
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
deleted file mode 100644
index 81fd76f..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
+++ /dev/null
@@ -1,390 +0,0 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.security.LoginUser;
-import com.ruoyi.production.dto.*;
-import com.ruoyi.production.mapper.SalesLedgerSchedulingMapper;
-import com.ruoyi.production.mapper.SalesLedgerWorkMapper;
-import com.ruoyi.production.mapper.SpeculativeTradingInfoMapper;
-import com.ruoyi.production.pojo.SalesLedgerScheduling;
-import com.ruoyi.production.pojo.SalesLedgerWork;
-import com.ruoyi.production.pojo.SpeculativeTradingInfo;
-import com.ruoyi.production.service.SalesLedgerSchedulingService;
-import com.ruoyi.project.system.domain.SysUser;
-import com.ruoyi.project.system.mapper.SysUserMapper;
-import com.ruoyi.sales.mapper.LossMapper;
-import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
-import com.ruoyi.sales.pojo.Loss;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import javax.servlet.http.HttpServletResponse;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:41
- */
-@Service
-@RequiredArgsConstructor
-@Slf4j
-public class SalesLedgerSchedulingServiceImpl extends ServiceImpl<SalesLedgerSchedulingMapper, SalesLedgerScheduling> implements SalesLedgerSchedulingService {
-
- private final SalesLedgerSchedulingMapper salesLedgerSchedulingMapper;
-
- private final SalesLedgerWorkMapper salesLedgerWorkMapper;
-
- @Override
- public IPage<SalesLedgerSchedulingDto> listPage(Page page, SalesLedgerSchedulingDto salesLedgerSchedulingDto) {
- IPage<SalesLedgerSchedulingDto> list = salesLedgerSchedulingMapper.listPage(page, salesLedgerSchedulingDto);
- if(CollectionUtils.isEmpty(list.getRecords())){
- return list;
- }
- Set<Long> collect = list.getRecords().stream().map(SalesLedgerSchedulingDto::getSalesLedgerProductId).collect(Collectors.toSet());
- LambdaQueryWrapper<SalesLedgerWork> salesLedgerWorkLambdaQueryWrapper = new LambdaQueryWrapper<>();
- salesLedgerWorkLambdaQueryWrapper.in(SalesLedgerWork::getSalesLedgerProductId, collect)
- .ne(SalesLedgerWork::getStatus, 1);
- List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
- list.getRecords().forEach(i -> {
- // 鑾峰彇瀹屾垚鏁伴噺
- i.setSuccessNum(salesLedgerWorks
- .stream()
- .filter(j -> j.getSalesLedgerProductId().equals(i.getSalesLedgerProductId()))
- .map(SalesLedgerWork::getFinishedNum)
- .reduce(BigDecimal.ZERO, BigDecimal::add));
-
- // 璁$畻鐢熶骇鎬婚噺 = 瑙勬牸 * 鏁伴噺 / 1000
- String[] split = i.getSpecificationModel().split("\\*");
- if(split.length == 2 && isNumeric(split[0]) && isNumeric(split[1])){
- BigDecimal multiply = new BigDecimal(split[0])
- .multiply(new BigDecimal(split[1])
- .multiply(i.getQuantity()).divide(new BigDecimal(1000),2, RoundingMode.CEILING));
- i.setTotalProduction(multiply);
- }
-
- // 鐘舵�� = 鏁伴噺鍜屽畬宸ユ暟閲忔瘮杈�
- if(i.getSchedulingNum().compareTo(new BigDecimal(0)) == 0){
- i.setStatus("鏈紑濮�");
- } else if(i.getQuantity().compareTo(i.getSchedulingNum()) <= 0){
- i.setStatus("宸插畬鎴�");
- }else{
- i.setStatus("鐢熶骇涓�");
- }
- // 杩涘害淇濈暀涓や綅灏忔暟
- i.setProgress(i.getSchedulingNum().divide(i.getQuantity(),4,RoundingMode.CEILING).multiply(new BigDecimal(100)));
-
- });
- return list;
- }
-
- public static boolean isNumeric(String str) {
- if (str == null || str.isEmpty()) {
- return false;
- }
- // 閬嶅巻瀛楃涓茬殑姣忎釜瀛楃锛屾鏌ユ槸鍚︿负鏁板瓧
- for (int i = 0; i < str.length(); i++) {
- if (!Character.isDigit(str.charAt(i))) {
- return false;
- }
- }
- return true;
- }
-
- @Override
- public void export(HttpServletResponse response) {
- List<SalesLedgerSchedulingDto> list = salesLedgerSchedulingMapper.list();
- if(CollectionUtils.isEmpty(list)){
- throw new RuntimeException("鏃犲鍑烘暟鎹�");
- }
- Set<Long> collect = list.stream().map(SalesLedgerSchedulingDto::getSalesLedgerProductId).collect(Collectors.toSet());
- LambdaQueryWrapper<SalesLedgerWork> salesLedgerWorkLambdaQueryWrapper = new LambdaQueryWrapper<>();
- salesLedgerWorkLambdaQueryWrapper.in(SalesLedgerWork::getSalesLedgerProductId, collect)
- .ne(SalesLedgerWork::getStatus, 1);
- List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
- list.forEach(i -> {
- // 鑾峰彇瀹屾垚鏁伴噺
- i.setSuccessNum(salesLedgerWorks
- .stream()
- .filter(j -> j.getSalesLedgerProductId().equals(i.getSalesLedgerProductId()))
- .map(SalesLedgerWork::getFinishedNum)
- .reduce(BigDecimal.ZERO, BigDecimal::add));
- });
- ExcelUtil<SalesLedgerSchedulingDto> util = new ExcelUtil<>(SalesLedgerSchedulingDto.class);
- util.exportExcel(response, list, "鐢熶骇璁㈠崟");
- }
-
- private final SysUserMapper sysUserMapper;
-
- private final SpeculativeTradingInfoMapper speculativeTradingInfoMapper;
-
- @Override
- public String productionDispatch(List<ProductionDispatchAddDto> productionDispatchAddDtoList) {
- int i = 0;
- int successNum = 0;
- LoginUser loginUser = SecurityUtils.getLoginUser();
- for (ProductionDispatchAddDto productionDispatchAddDto : productionDispatchAddDtoList) {
- SysUser sysUser = sysUserMapper.selectUserById(productionDispatchAddDto.getSchedulingUserId() == null ? loginUser.getUser().getUserId() : productionDispatchAddDto.getSchedulingUserId());
- if(sysUser == null){
- i++;
- continue;
- }
- // 鑾峰彇绌轰綑鐐掓満
- String[] split = productionDispatchAddDto.getSpeculativeTradingName().split(",");
- if(split != null && split.length == 0){
- i++;
- continue;
- }
- List<SpeculativeTradingInfo> speculativeTradingInfos = speculativeTradingInfoMapper.selectList(new LambdaQueryWrapper<SpeculativeTradingInfo>()
- .in(SpeculativeTradingInfo::getName, Arrays.asList(split))
- .orderByAsc(SpeculativeTradingInfo::getSort));
- if(CollectionUtils.isEmpty(speculativeTradingInfos)){
- i++;
- continue;
- }
- AtomicReference<String> name = new AtomicReference<>(""); //闇�瑕佺粦瀹氱殑鐐掓満
- //閫氳繃瑙勬牸鍨嬪彿鍜屾帓浜ф暟閲忚绠楁湰娆$敓浜т骇閲�
- String[] split1 = productionDispatchAddDto.getSpecificationModel().split("\\*");
- if(split1.length != 2){
- i++;
- continue;
- }
- // 鏈鐢熶骇浜ч噺
- BigDecimal productionNum = new BigDecimal(split1[0])
- .multiply(new BigDecimal(split1[1]).multiply(productionDispatchAddDto.getSchedulingNum()));
- // 澶氫釜鐐掓満鎯呭喌
- if(speculativeTradingInfos.size() > 1){
- for (SpeculativeTradingInfo speculativeTradingInfo : speculativeTradingInfos) {
- // 鑾峰彇璇ョ倰鏈烘鍦ㄦ帓浜ч噺
- BigDecimal schedulingNumBySpeculativeTradingName = getSchedulingNumBySpeculativeTradingName(speculativeTradingInfo.getName());
- // 濡傛灉璇ョ倰鏈烘�婚噺(鍗曚綅kg闇�瑕佷箻1000) - 姝e湪鎺掍骇閲� >=鏈鐢熶骇浜ч噺灏卞垎閰嶆鐐掓満
- if(speculativeTradingInfo.getWorkLoad().multiply(new BigDecimal(1000)).subtract(schedulingNumBySpeculativeTradingName).compareTo(productionNum) >= 0){
- name.set(speculativeTradingInfo.getName());
- break;
- }
- }
- }else{
- // 鍗曚釜鐐掓満鎯呭喌
- name.set(speculativeTradingInfos.get(0).getName());
- }
- if(name.get().isEmpty()){
- i++;
- continue;
- }
- String productionLine = "";
- switch (name.get()){
- case "鐐掓満1":
- productionLine = "浜х嚎1";
- break;
- case "鐐掓満2":
- productionLine = "浜х嚎2";
- break;
- case "鐐掓満3":
- productionLine = "浜х嚎3";
- break;
- case "鐐掓満4":
- productionLine = "浜х嚎4";
- break;
- }
- SalesLedgerScheduling salesLedgerScheduling = SalesLedgerScheduling.builder()
- .salesLedgerId(productionDispatchAddDto.getSalesLedgerId())
- .salesLedgerProductId(productionDispatchAddDto.getSalesLedgerProductId())
- .speculativeTradingName(name.get())
- .productionLine(productionLine)
- .schedulingUserId(sysUser.getUserId())
- .schedulingUserName(sysUser.getNickName())
- .schedulingNum(productionDispatchAddDto.getSchedulingNum())
- .schedulingDate(productionDispatchAddDto.getSchedulingDate() == null ? LocalDate.now() : LocalDate.parse(productionDispatchAddDto.getSchedulingDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")))
- .status(1)
- .build();
- salesLedgerSchedulingMapper.insert(salesLedgerScheduling);
- successNum++;
- }
-
- return "娲惧伐鎴愬姛鏁伴噺" + successNum + "锛屽け璐ユ暟閲�" + i;
- }
-
- private final SalesLedgerProductMapper salesLedgerProductMapper;
-
- /**
- *閫氳繃鐐掓満鍚嶇О鑾峰彇褰撳ぉ姝e湪鎺掍骇閲�
- * @return
- */
- public BigDecimal getSchedulingNumBySpeculativeTradingName(String speculativeTradingName){
- LambdaQueryWrapper<SalesLedgerScheduling> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(SalesLedgerScheduling::getSpeculativeTradingName, speculativeTradingName)
- .eq(SalesLedgerScheduling::getSchedulingDate, LocalDate.now());
- List<SalesLedgerScheduling> salesLedgerSchedulings = salesLedgerSchedulingMapper.selectList(queryWrapper);
- if(CollectionUtils.isEmpty(salesLedgerSchedulings)){
- return BigDecimal.ZERO;
- }
- List<Long> collect = salesLedgerSchedulings.stream().map(SalesLedgerScheduling::getSalesLedgerProductId).collect(Collectors.toList());
- List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(new LambdaQueryWrapper<SalesLedgerProduct>()
- .in(SalesLedgerProduct::getId, collect));
- if(CollectionUtils.isEmpty(salesLedgerProducts)) return BigDecimal.ZERO;
- AtomicInteger totalNum = new AtomicInteger(0); //鎬绘暟
- salesLedgerSchedulings.forEach(item ->{
- List<SalesLedgerProduct> collect1 = salesLedgerProducts.stream()
- .filter(j -> j.getId().equals(item.getSalesLedgerProductId()))
- .collect(Collectors.toList());
- if(!CollectionUtils.isEmpty(collect1)){
- SalesLedgerProduct salesLedgerProduct = collect1.get(0);
- // 鏍规嵁浜у搧瑙勬牸 * 鎺掍骇鏁伴噺 鑾峰彇鏈鐢熶骇浜ч噺骞剁疮璁�
- String[] split = salesLedgerProduct.getSpecificationModel().split("\\*");
- BigDecimal productionNum = new BigDecimal(split[0])
- .multiply(new BigDecimal(split[1]).multiply(item.getSchedulingNum()));
- totalNum.addAndGet(productionNum.intValue());
- }
- });
- // 闇�瑕� / 鎹熻�楃巼
- Loss loss = lossMapper.selectOne(new LambdaQueryWrapper<Loss>().last("limit 1"));
- BigDecimal lossNum = loss == null ? new BigDecimal(6) : loss.getRate(); //娌℃湁鎹熻�楃巼鍒欓粯璁や负6
-
- return new BigDecimal(totalNum.get()).multiply(new BigDecimal(100)).divide(lossNum, 2,RoundingMode.HALF_UP);
- }
-
- private final LossMapper lossMapper;
-
-
- /**
- *閫氳繃鎵归噺鐐掓満鍚嶇О鑾峰彇褰撳ぉ姝e湪鎺掍骇閲�
- * @return
- */
- public BigDecimal getSchedulingNumBySpeculativeTradingNameList(List<String> speculativeTradingName){
- LambdaQueryWrapper<SalesLedgerScheduling> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.in(SalesLedgerScheduling::getSpeculativeTradingName, speculativeTradingName)
- .eq(SalesLedgerScheduling::getSchedulingDate, LocalDate.now());
- List<SalesLedgerScheduling> salesLedgerSchedulings = salesLedgerSchedulingMapper.selectList(queryWrapper);
- if(CollectionUtils.isEmpty(salesLedgerSchedulings)){
- return BigDecimal.ZERO;
- }
- List<Long> collect = salesLedgerSchedulings.stream().map(SalesLedgerScheduling::getSalesLedgerProductId).collect(Collectors.toList());
- List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(new LambdaQueryWrapper<SalesLedgerProduct>()
- .in(SalesLedgerProduct::getId, collect));
- if(CollectionUtils.isEmpty(salesLedgerProducts)) return BigDecimal.ZERO;
- AtomicInteger totalNum = new AtomicInteger(0); //鎬绘暟
- salesLedgerSchedulings.forEach(item ->{
- List<SalesLedgerProduct> collect1 = salesLedgerProducts.stream()
- .filter(j -> j.getId().equals(item.getSalesLedgerProductId()))
- .collect(Collectors.toList());
- if(!CollectionUtils.isEmpty(collect1)){
- SalesLedgerProduct salesLedgerProduct = collect1.get(0);
- // 鏍规嵁浜у搧瑙勬牸 * 鎺掍骇鏁伴噺 鑾峰彇鏈鐢熶骇浜ч噺骞剁疮璁�
- String[] split = salesLedgerProduct.getSpecificationModel().split("\\*");
- BigDecimal productionNum = new BigDecimal(split[0])
- .multiply(new BigDecimal(split[1]).multiply(item.getSchedulingNum()));
- totalNum.addAndGet(productionNum.intValue());
- }
- });
- return new BigDecimal(totalNum.get());
- }
-
- @Override
- public IPage<SalesLedgerSchedulingProcessDto> listPageProcess(Page page, SalesLedgerSchedulingProcessDto salesLedgerSchedulingDto) {
- IPage<SalesLedgerSchedulingProcessDto> list = salesLedgerSchedulingMapper.listPageProcess(page, salesLedgerSchedulingDto);
- list.getRecords().forEach(i -> {
- // 璁$畻鐢熶骇鎬婚噺 = 瑙勬牸 * 鏁伴噺 / 1000
- String[] split = i.getSpecificationModel().split("\\*");
- if(split.length == 2 && isNumeric(split[0]) && isNumeric(split[1])){
- BigDecimal multiply = new BigDecimal(split[0])
- .multiply(new BigDecimal(split[1])
- .multiply(i.getSuccessNum()).divide(new BigDecimal(1000),2, RoundingMode.CEILING));
- i.setTotalProduction(multiply);
- }
- });
- return list;
- }
-
- @Override
- public int productionDispatchDelete(List<Long> ids) {
- LambdaQueryWrapper<SalesLedgerScheduling> salesLedgerSchedulingLambdaQueryWrapper = new LambdaQueryWrapper<SalesLedgerScheduling>();
- salesLedgerSchedulingLambdaQueryWrapper.in(SalesLedgerScheduling::getId, ids);
- List<SalesLedgerScheduling> salesLedgerSchedulings = salesLedgerSchedulingMapper.selectList(salesLedgerSchedulingLambdaQueryWrapper);
- if(CollectionUtils.isEmpty(salesLedgerSchedulings)) throw new RuntimeException("鎺掍骇涓嶅瓨鍦�");
- List<SalesLedgerScheduling> collect = salesLedgerSchedulings.stream().filter(i -> !i.getStatus().equals(1)).collect(Collectors.toList());
- if(!CollectionUtils.isEmpty(collect)) throw new RuntimeException("鎺掍骇宸插紑濮嬶紝璇峰嬁鍒犻櫎");
- salesLedgerSchedulingMapper.deleteBatchIds(ids);
- return 0;
- }
-
- @Override
- public int processScheduling(List<ProcessSchedulingDto> processSchedulingDtos) {
- for (ProcessSchedulingDto processSchedulingDto : processSchedulingDtos) {
- SalesLedgerScheduling salesLedgerScheduling = salesLedgerSchedulingMapper.selectById(processSchedulingDto.getId());
- if(salesLedgerScheduling == null) throw new RuntimeException("鎺掍骇涓嶅瓨鍦�");
- if(salesLedgerScheduling.getStatus().equals(3)) throw new RuntimeException("鎺掍骇宸插畬鎴愶紝璇峰嬁閲嶅鎺掍骇");
- SysUser sysUser = sysUserMapper.selectUserById(processSchedulingDto.getSchedulingUserId());
- if(sysUser == null) throw new RuntimeException("鎺掍骇浜轰笉瀛樺湪");
- salesLedgerScheduling.setFinishedNum(salesLedgerScheduling.getFinishedNum().add(processSchedulingDto.getSchedulingNum()));
-// LambdaQueryWrapper<SalesLedgerWork> salesLedgerWorkLambdaQueryWrapper = new LambdaQueryWrapper<>();
-// salesLedgerWorkLambdaQueryWrapper.eq(SalesLedgerWork::getSalesLedgerSchedulingId, salesLedgerScheduling.getId())
-// .ne(SalesLedgerWork::getStatus, 1);
-// List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
- if(salesLedgerScheduling.getSchedulingNum().compareTo(salesLedgerScheduling.getFinishedNum()) < 0){
- throw new RuntimeException("褰撳墠鎺掍骇鏁伴噺澶т簬寰呮帓浜ф暟閲忥紝璇蜂粩缁嗘牳瀵癸紒");
- }
- if(salesLedgerScheduling.getSchedulingNum().compareTo(salesLedgerScheduling.getFinishedNum()) == 0){
- salesLedgerScheduling.setStatus(3);
- }else{
- salesLedgerScheduling.setStatus(2);
- }
- salesLedgerSchedulingMapper.updateById(salesLedgerScheduling);
- SalesLedgerWork.SalesLedgerWorkBuilder salesLedgerWorkBuilder = SalesLedgerWork.builder()
- .salesLedgerSchedulingId(salesLedgerScheduling.getId())
- .salesLedgerId(salesLedgerScheduling.getSalesLedgerId())
- .remark(processSchedulingDto.getRemark())
- .productionLine(processSchedulingDto.getProductionLine())
- .type(processSchedulingDto.getType())
- .loss(processSchedulingDto.getLoss())
- .receive(processSchedulingDto.getReceive())
- .salesLedgerProductId(salesLedgerScheduling.getSalesLedgerProductId())
- .schedulingUserId(salesLedgerScheduling.getSchedulingUserId())
- .schedulingUserName(sysUser.getNickName())
- .schedulingNum(processSchedulingDto.getSchedulingNum())
- .workHours(processSchedulingDto.getWorkHours())
- .process(processSchedulingDto.getProcess())
- .status(1)
- .schedulingDate(LocalDate.parse(processSchedulingDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
- salesLedgerWorkMapper.insert(salesLedgerWorkBuilder.build());
- }
- return 0;
- }
-
- @Override
- public void exportOne(HttpServletResponse response) {
- List<SalesLedgerSchedulingDto> list = salesLedgerSchedulingMapper.list();
- if(CollectionUtils.isEmpty(list)){
- throw new RuntimeException("鏃犲鍑烘暟鎹�");
- }
- List<DaiDto> dais = new ArrayList<>();
- list.forEach(i -> {
- DaiDto daiDto = new DaiDto();
- BeanUtils.copyProperties(i, daiDto);
- // 鑾峰彇寰呮帓浜ф暟閲�
- daiDto.setDaiNum(daiDto.getQuantity().subtract(i.getSchedulingNum()));
- dais.add(daiDto);
- });
- ExcelUtil<DaiDto> util = new ExcelUtil<>(DaiDto.class);
- util.exportExcel(response, dais, "鐢熶骇娲惧伐");
- }
-}
diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
deleted file mode 100644
index 6573b73..0000000
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
+++ /dev/null
@@ -1,182 +0,0 @@
-//package com.ruoyi.production.service.impl;
-//
-//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-//import com.baomidou.mybatisplus.core.metadata.IPage;
-//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-//import com.ruoyi.common.utils.SecurityUtils;
-//import com.ruoyi.framework.security.LoginUser;
-//import com.ruoyi.framework.web.domain.AjaxResult;
-//import com.ruoyi.procurementrecord.dto.Details;
-//import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
-//import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
-//import com.ruoyi.procurementrecord.service.impl.ProcurementRecordOutServiceImpl;
-//import com.ruoyi.procurementrecord.service.impl.ProcurementRecordServiceImpl;
-//import com.ruoyi.production.dto.ProductionReportDto;
-//import com.ruoyi.production.dto.SalesLedgerWorkDto;
-//import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
-//import com.ruoyi.production.mapper.SalesLedgerWorkMapper;
-//import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
-//import com.ruoyi.production.pojo.SalesLedgerWork;
-//import com.ruoyi.production.service.SalesLedgerProductionAccountingService;
-//import com.ruoyi.production.service.SalesLedgerWorkService;
-//import com.ruoyi.project.system.domain.SysUser;
-//import com.ruoyi.project.system.mapper.SysUserMapper;
-//import com.ruoyi.sales.mapper.LossMapper;
-//import com.ruoyi.sales.pojo.Loss;
-//import lombok.RequiredArgsConstructor;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.BeanUtils;
-//import org.springframework.stereotype.Service;
-//import org.springframework.util.CollectionUtils;
-//
-//import java.math.BigDecimal;
-//import java.math.RoundingMode;
-//import java.time.LocalDate;
-//import java.time.format.DateTimeFormatter;
-//import java.util.ArrayList;
-//import java.util.List;
-//import java.util.stream.Collectors;
-//
-///**
-// * @author :yys
-// * @date : 2025/7/21 14:40
-// */
-//@Service
-//@RequiredArgsConstructor
-//@Slf4j
-//public class SalesLedgerWorkServiceImpl extends ServiceImpl<SalesLedgerWorkMapper, SalesLedgerWork> implements SalesLedgerWorkService {
-//
-// private final SalesLedgerWorkMapper salesLedgerWorkMapper;
-//
-// private final SysUserMapper sysUserMapper;
-//
-// private final LossMapper lossMapper;
-//
-// private final SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
-//
-// @Override
-// public IPage<SalesLedgerWorkDto> listPage(Page page, SalesLedgerWorkDto salesLedgerWorkDto) {
-// IPage<SalesLedgerWorkDto> iPage = salesLedgerWorkMapper.listPage(page, salesLedgerWorkDto);
-// List<Loss> losses = lossMapper.selectList(null);
-// if(!CollectionUtils.isEmpty(losses)){
-// iPage.getRecords().forEach(item -> {
-// String[] split = item.getSpecificationModel().split("\\*");
-// if(split.length == 2 && isNumeric(split[1]) && isNumeric(split[0])){
-// // 璁$畻鎹熻�楋紙100000浠h〃 鎹熻�楃殑 100 鍜� 鍗曚綅杞崲鐨�1000锛�
-// BigDecimal divide = new BigDecimal(split[0])
-// .multiply(new BigDecimal(split[1]))
-// .multiply(item.getFinishedNum())
-// .multiply(losses.get(0).getRate())
-// .divide(new BigDecimal(100000), 2, RoundingMode.HALF_UP);
-// item.setLoss(divide.toString());
-// }
-//
-// });
-// }
-// return iPage;
-// }
-//
-// public static boolean isNumeric(String str) {
-// if (str == null || str.isEmpty()) {
-// return false;
-// }
-// // 閬嶅巻瀛楃涓茬殑姣忎釜瀛楃锛屾鏌ユ槸鍚︿负鏁板瓧
-// for (int i = 0; i < str.length(); i++) {
-// if (!Character.isDigit(str.charAt(i))) {
-// return false;
-// }
-// }
-// return true;
-// }
-//
-// private final ProcurementRecordServiceImpl procurementRecordService;
-//
-// @Override
-// public int productionReport(ProductionReportDto productionReportDto) {
-// SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(productionReportDto.getId());
-// SysUser sysUser = sysUserMapper.selectUserById(productionReportDto.getSchedulingUserId());
-// if (salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
-// if (salesLedgerWork.getStatus() == 3) throw new RuntimeException("鎶ュ伐宸插畬鎴�");
-// if (sysUser == null) throw new RuntimeException("鐢熶骇浜轰笉瀛樺湪");
-// salesLedgerWork.setFinishedNum(salesLedgerWork.getFinishedNum().add(productionReportDto.getFinishedNum()));
-// if(salesLedgerWork.getSchedulingNum().compareTo(salesLedgerWork.getFinishedNum()) <= 0){
-// salesLedgerWork.setStatus(3);
-// }else{
-// salesLedgerWork.setStatus(2);
-// }
-// salesLedgerWorkMapper.updateById(salesLedgerWork);
-// // 鏂板鎶ュ伐鏁版嵁
-// SalesLedgerProductionAccounting.SalesLedgerProductionAccountingBuilder builder = SalesLedgerProductionAccounting.builder()
-// .productMainId(null)
-// .schedulingUserId(sysUser.getUserId())
-// .schedulingUserName(sysUser.getNickName())
-// .finishedNum(productionReportDto.getFinishedNum())
-// .workHours(salesLedgerWork.getWorkHours())
-// .process(salesLedgerWork.getProcess())
-// .schedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
-// salesLedgerProductionAccountingMapper.insert(builder.build());
-// // 鐢熶骇鎶ュ伐鎴愬姛 -> 鍏ュ簱
-// LoginUser loginUser = SecurityUtils.getLoginUser();
-// ProcurementAddDto procurementRecordOutAdd = new ProcurementAddDto();
-// procurementRecordOutAdd.setType(2);
-// procurementRecordOutAdd.setTypeName("鐢熶骇鍏ュ簱");
-// procurementRecordOutAdd.setNickName(loginUser.getNickName());
-// List<Details> details = new ArrayList<>();
-// Details details1 = new Details();
-// details1.setInboundQuantity(productionReportDto.getFinishedNum());
-// details1.setId(Integer.parseInt(salesLedgerWork.getSalesLedgerProductId().toString()));
-// details1.setUnitPrice(productionReportDto.getUnitPrice());
-// details1.setTotalPrice(productionReportDto.getTotalPrice());
-// details.add(details1);
-// procurementRecordOutAdd.setDetails(details);
-// procurementRecordService.add(procurementRecordOutAdd);
-//
-// return 0;
-// }
-//
-// @Override
-// public int productionReportUpdate(ProductionReportDto productionReportDto) {
-// SalesLedgerProductionAccounting salesLedgerProductionAccounting = salesLedgerProductionAccountingMapper.selectById(productionReportDto.getId());
-// if(salesLedgerProductionAccounting == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
-// SysUser sysUser = sysUserMapper.selectUserById(productionReportDto.getSchedulingUserId());
-// if(sysUser == null) throw new RuntimeException("鐢熶骇浜轰笉瀛樺湪");
-// salesLedgerProductionAccounting.setFinishedNum(productionReportDto.getFinishedNum());
-// salesLedgerProductionAccounting.setSchedulingUserId(sysUser.getUserId());
-// salesLedgerProductionAccounting.setSchedulingUserName(sysUser.getNickName());
-// salesLedgerProductionAccounting.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
-// salesLedgerProductionAccountingMapper.updateById(salesLedgerProductionAccounting);
-//
-// // 鏇存柊鎶ュ伐鏁版嵁
-// SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(salesLedgerProductionAccounting.getSalesLedgerWorkId());
-// if(salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
-// salesLedgerWork.setFinishedNum(productionReportDto.getFinishedNum());
-// if(salesLedgerWork.getSchedulingNum().compareTo(salesLedgerWork.getFinishedNum()) <= 0){
-// salesLedgerWork.setStatus(3);
-// }else{
-// salesLedgerWork.setStatus(2);
-// }
-// salesLedgerWork.setSchedulingUserId(sysUser.getUserId());
-// salesLedgerWork.setSchedulingUserName(sysUser.getNickName());
-// salesLedgerWork.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
-// salesLedgerWorkMapper.updateById(salesLedgerWork);
-// return 0;
-// }
-//
-// @Override
-// public List<ProductionReportDto> getList(Long id) {
-// SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(id);
-// if(salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
-// LambdaQueryWrapper<SalesLedgerProductionAccounting> salesLedgerProductionAccountingLambdaQueryWrapper = new LambdaQueryWrapper<>();
-// salesLedgerProductionAccountingLambdaQueryWrapper.eq(SalesLedgerProductionAccounting::getSalesLedgerWorkId, id);
-// List<SalesLedgerProductionAccounting> salesLedgerProductionAccountingList = salesLedgerProductionAccountingMapper.selectList(salesLedgerProductionAccountingLambdaQueryWrapper);
-// if(CollectionUtils.isEmpty(salesLedgerProductionAccountingList)) throw new RuntimeException("娌℃湁鐢熶骇璁板綍鏁版嵁");
-// return salesLedgerProductionAccountingList.stream().map(salesLedgerProductionAccounting -> {
-// ProductionReportDto productionReportDto = new ProductionReportDto();
-// BeanUtils.copyProperties(salesLedgerProductionAccounting, productionReportDto);
-// productionReportDto.setSchedulingDate(salesLedgerProductionAccounting.getSchedulingDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
-// productionReportDto.setSchedulingNum(salesLedgerWork.getSchedulingNum());
-// return productionReportDto;
-// }).collect(Collectors.toList());
-// }
-//}
diff --git a/src/main/resources/mapper/production/ProcessRouteItemMapper.xml b/src/main/resources/mapper/production/ProcessRouteItemMapper.xml
index 00000f6..e060f4e 100644
--- a/src/main/resources/mapper/production/ProcessRouteItemMapper.xml
+++ b/src/main/resources/mapper/production/ProcessRouteItemMapper.xml
@@ -2,7 +2,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProcessRouteItemMapper">
- <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProcessRouteItem">
+ <resultMap id="basicMap" type="com.ruoyi.production2.pojo.ProcessRouteItem">
<id property="id" column="id"/>
<result property="routeId" column="route_id"/>
<result property="processId" column="process_id"/>
@@ -13,7 +13,7 @@
<result property="dragSort" column="drag_sort"/>
</resultMap>
- <select id="listProcessRouteItemDto" resultType="com.ruoyi.production.dto.ProcessRouteItemDto">
+ <select id="listProcessRouteItemDto" resultType="com.ruoyi.production2.dto.ProcessRouteItemDto">
select pri.*,
pr.description ,
pp.name as process_name,
diff --git a/src/main/resources/mapper/production/ProcessRouteMapper.xml b/src/main/resources/mapper/production/ProcessRouteMapper.xml
index 51c11b4..86a4862 100644
--- a/src/main/resources/mapper/production/ProcessRouteMapper.xml
+++ b/src/main/resources/mapper/production/ProcessRouteMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="com.ruoyi.production.mapper.ProcessRouteMapper">
- <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProcessRoute">
+ <resultMap id="basicMap" type="com.ruoyi.production2.pojo.ProcessRoute">
<id property="id" column="id"/>
<result property="productModelId" column="product_model_id"/>
<result property="description" column="description"/>
@@ -12,7 +12,7 @@
<result property="updateTime" column="update_time"/>
</resultMap>
- <select id="pageProcessRouteDto" resultType="com.ruoyi.production.dto.ProcessRouteDto">
+ <select id="pageProcessRouteDto" resultType="com.ruoyi.production2.dto.ProcessRouteDto">
select ps.*, p.product_name,pm.product_id,pm.model,pb.bom_no
from process_route ps
left join product_bom pb on ps.bom_id = pb.id
diff --git a/src/main/resources/mapper/production/ProductBomMapper.xml b/src/main/resources/mapper/production/ProductBomMapper.xml
index ec06cd3..dbc4a16 100644
--- a/src/main/resources/mapper/production/ProductBomMapper.xml
+++ b/src/main/resources/mapper/production/ProductBomMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="com.ruoyi.production.mapper.ProductBomMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
- <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductBom">
+ <resultMap id="BaseResultMap" type="com.ruoyi.production2.pojo.ProductBom">
<id column="id" property="id"/>
<result column="product_model_id" property="productModelId"/>
<result column="bom_no" property="bomNo"/>
@@ -15,7 +15,7 @@
<result column="update_user" property="updateUser"/>
<result column="tenant_id" property="tenantId"/>
</resultMap>
- <select id="listPage" resultType="com.ruoyi.production.dto.ProductBomDto">
+ <select id="listPage" resultType="com.ruoyi.production2.dto.ProductBomDto">
select * from (select pb.*,
pm.model productModelName,
p.product_name productName
@@ -36,7 +36,7 @@
and version = #{c.version}
</if>
</select>
- <select id="getById" resultType="com.ruoyi.production.dto.ProductBomDto">
+ <select id="getById" resultType="com.ruoyi.production2.dto.ProductBomDto">
select pb.*,
pm.model productModelName,
p.product_name productName
diff --git a/src/main/resources/mapper/production/ProductOrderMapper.xml b/src/main/resources/mapper/production/ProductOrderMapper.xml
index 6b993bf..452758e 100644
--- a/src/main/resources/mapper/production/ProductOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="com.ruoyi.production.mapper.ProductOrderMapper">
- <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductOrder">
+ <resultMap id="basicMap" type="com.ruoyi.production2.pojo.ProductOrder">
<id property="id" column="id"/>
<result property="productModelId" column="product_model_id"/>
<result property="tenantId" column="tenant_id"/>
@@ -13,7 +13,7 @@
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
- <select id="pageProductOrder" resultType="com.ruoyi.production.dto.ProductOrderDto">
+ <select id="pageProductOrder" resultType="com.ruoyi.production2.dto.ProductOrderDto">
select po.*,
sl.sales_contract_no,
sl.customer_name,
@@ -65,13 +65,13 @@
</if>
</where>
</select>
- <select id="listProcessRoute" resultType="com.ruoyi.production.pojo.ProcessRoute">
+ <select id="listProcessRoute" resultType="com.ruoyi.production2.pojo.ProcessRoute">
select pr.*
from process_route pr
left join product_model pm on pr.product_model_id = pm.id
where pm.id = #{productModelId}
</select>
- <select id="listProcessBom" resultType="com.ruoyi.production.dto.ProductStructureDto">
+ <select id="listProcessBom" resultType="com.ruoyi.production2.dto.ProductStructureDto">
select ps.id,
ps.product_model_id,
ps.process_id,
diff --git a/src/main/resources/mapper/production/ProductOrderMaterialMapper.xml b/src/main/resources/mapper/production/ProductOrderMaterialMapper.xml
index fc1454e..52b0952 100644
--- a/src/main/resources/mapper/production/ProductOrderMaterialMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMaterialMapper.xml
@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProductOrderMaterialMapper">
- <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductOrderMaterial">
+ <resultMap id="BaseResultMap" type="com.ruoyi.production2.pojo.ProductOrderMaterial">
<id column="id" property="id" />
<result column="tenant_id" property="tenantId" />
<result column="process_name" property="processName" />
@@ -21,7 +21,7 @@
<result column="update_user" property="updateUser" />
</resultMap>
- <select id="pickMaterial" resultType="com.ruoyi.production.pojo.ProductOrderMaterial">
+ <select id="pickMaterial" resultType="com.ruoyi.production2.pojo.ProductOrderMaterial">
SELECT
si.id,
si.qualitity,
@@ -47,7 +47,7 @@
LEFT JOIN product p1 ON p1.id = p.parent_id
</select>
- <select id="selectLeafNode" resultType="com.ruoyi.production.dto.ProductStructureDto">
+ <select id="selectLeafNode" resultType="com.ruoyi.production2.dto.ProductStructureDto">
SELECT
ps.*,
p.product_name,
@@ -66,7 +66,7 @@
ps.id
</select>
- <select id="selectByProductModelIds" resultType="com.ruoyi.production.dto.ProductOrderMaterialDto">
+ <select id="selectByProductModelIds" resultType="com.ruoyi.production2.dto.ProductOrderMaterialDto">
SELECT
si.id,
si.qualitity,
diff --git a/src/main/resources/mapper/production/ProductProcessMapper.xml b/src/main/resources/mapper/production/ProductProcessMapper.xml
index 5b1ac18..7bd596c 100644
--- a/src/main/resources/mapper/production/ProductProcessMapper.xml
+++ b/src/main/resources/mapper/production/ProductProcessMapper.xml
@@ -2,7 +2,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProductProcessMapper">
- <select id="listPage" resultType="com.ruoyi.production.dto.ProductProcessDto">
+ <select id="listPage" resultType="com.ruoyi.production2.dto.ProductProcessDto">
SELECT
*
FROM
diff --git a/src/main/resources/mapper/production/ProductProcessRouteItemMapper.xml b/src/main/resources/mapper/production/ProductProcessRouteItemMapper.xml
index 16f2d48..ec8554b 100644
--- a/src/main/resources/mapper/production/ProductProcessRouteItemMapper.xml
+++ b/src/main/resources/mapper/production/ProductProcessRouteItemMapper.xml
@@ -3,14 +3,14 @@
<mapper namespace="com.ruoyi.production.mapper.ProductProcessRouteItemMapper">
- <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductProcessRouteItem">
+ <resultMap id="basicMap" type="com.ruoyi.production2.pojo.ProductProcessRouteItem">
<id property="id" column="id"/>
<result property="productModelId" column="product_model_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
- <select id="listItem" resultType="com.ruoyi.production.dto.ProductProcessRouteItemDto">
+ <select id="listItem" resultType="com.ruoyi.production2.dto.ProductProcessRouteItemDto">
select ppri.*,
pp.name as process_name,
pp.is_inbound as inbound,
diff --git a/src/main/resources/mapper/production/ProductProcessRouteMapper.xml b/src/main/resources/mapper/production/ProductProcessRouteMapper.xml
index dd4809f..c58823e 100644
--- a/src/main/resources/mapper/production/ProductProcessRouteMapper.xml
+++ b/src/main/resources/mapper/production/ProductProcessRouteMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="com.ruoyi.production.mapper.ProductProcessRouteMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
- <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductProcessRoute">
+ <resultMap id="BaseResultMap" type="com.ruoyi.production2.pojo.ProductProcessRoute">
<id column="id" property="id"/>
<result column="product_model_id" property="productModelId"/>
<result column="description" property="description"/>
@@ -14,7 +14,7 @@
<result column="process_route_code" property="processRouteCode"/>
<result column="product_order_id" property="productOrderId"/>
</resultMap>
- <select id="listMain" resultType="com.ruoyi.production.dto.ProcessRouteDto">
+ <select id="listMain" resultType="com.ruoyi.production2.dto.ProcessRouteDto">
select ppr.*, p.product_name, pm.product_id, pm.model, pb.bom_no
from product_process_route ppr
left join product_bom pb on ppr.bom_id = pb.id
diff --git a/src/main/resources/mapper/production/ProductStructureMapper.xml b/src/main/resources/mapper/production/ProductStructureMapper.xml
index e4a0795..920db52 100644
--- a/src/main/resources/mapper/production/ProductStructureMapper.xml
+++ b/src/main/resources/mapper/production/ProductStructureMapper.xml
@@ -2,7 +2,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProductStructureMapper">
- <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductStructure">
+ <resultMap id="basicMap" type="com.ruoyi.production2.pojo.ProductStructure">
<id property="id" column="id"/>
<result property="productModelId" column="product_model_id"/>
<result property="processId" column="process_id"/>
@@ -11,7 +11,7 @@
<result property="unit" column="unit"/>
<result property="tenantId" column="tenant_id"/>
</resultMap>
- <select id="listBybomId" resultType="com.ruoyi.production.dto.ProductStructureDto">
+ <select id="listBybomId" resultType="com.ruoyi.production2.dto.ProductStructureDto">
select ps.*,
p.product_name,
pp.name as process_name,
@@ -25,7 +25,7 @@
where ps.bom_id = #{bomId}
order by ps.id
</select>
- <select id="listBybomAndProcess" resultType="com.ruoyi.production.dto.ProductStructureDto">
+ <select id="listBybomAndProcess" resultType="com.ruoyi.production2.dto.ProductStructureDto">
select ps.*,
p.product_name,
pp.name as process_name,
diff --git a/src/main/resources/mapper/production/ProductWorkOrderFileMapper.xml b/src/main/resources/mapper/production/ProductWorkOrderFileMapper.xml
index ae5686b..d46d848 100644
--- a/src/main/resources/mapper/production/ProductWorkOrderFileMapper.xml
+++ b/src/main/resources/mapper/production/ProductWorkOrderFileMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="com.ruoyi.production.mapper.ProductWorkOrderFileMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
- <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductWorkOrderFile">
+ <resultMap id="BaseResultMap" type="com.ruoyi.production2.pojo.ProductWorkOrderFile">
<id column="id" property="id" />
<result column="work_order_id" property="workOrderId" />
<result column="name" property="name" />
diff --git a/src/main/resources/mapper/production/ProductWorkOrderMapper.xml b/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
index ab3911e..15466a0 100644
--- a/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductWorkOrderMapper.xml
@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProductWorkOrderMapper">
- <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductWorkOrder">
+ <resultMap id="BaseResultMap" type="com.ruoyi.production2.pojo.ProductWorkOrder">
<result column="id" property="id"/>
<result column="product_process_route_item_id" property="productProcessRouteItemId"/>
<result column="create_time" property="createTime"/>
@@ -18,7 +18,7 @@
<result column="actualEndTime" property="actualEndTime"/>
</resultMap>
- <select id="pageProductWorkOrder" resultType="com.ruoyi.production.dto.ProductWorkOrderDto">
+ <select id="pageProductWorkOrder" resultType="com.ruoyi.production2.dto.ProductWorkOrderDto">
SELECT
pwo.*,
pp.NAME as processName,
@@ -49,7 +49,7 @@
and po.nps_no like concat('%',#{c.productOrderNpsNo},'%')
</if>
</select>
- <select id="getProductWorkOrderFlowCard" resultType="com.ruoyi.production.dto.ProductWorkOrderDto">
+ <select id="getProductWorkOrderFlowCard" resultType="com.ruoyi.production2.dto.ProductWorkOrderDto">
SELECT
pwo.*,
pp.NAME as processName,
@@ -76,7 +76,7 @@
p.product_name,
po.nps_no
</select>
- <select id="selectWorkOrderStartStats" resultType="com.ruoyi.production.dto.ProductWorkOrderDto">
+ <select id="selectWorkOrderStartStats" resultType="com.ruoyi.production2.dto.ProductWorkOrderDto">
SELECT
id,
actual_start_time AS planStartTime,
@@ -87,7 +87,7 @@
actual_start_time >= #{startDate}
AND actual_start_time <= #{endDate}
</select>
- <select id="selectMax" resultType="com.ruoyi.production.pojo.ProductWorkOrder">
+ <select id="selectMax" resultType="com.ruoyi.production2.pojo.ProductWorkOrder">
SELECT SUBSTRING(work_order_no, 3) as work_order_no
FROM product_work_order
WHERE SUBSTRING(work_order_no, 3) like concat(#{datePrefix},'%')
diff --git a/src/main/resources/mapper/production/ProductionAccountMapper.xml b/src/main/resources/mapper/production/ProductionAccountMapper.xml
new file mode 100644
index 0000000..b1c01e6
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionAccountMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionAccountMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionAccount">
+ <id column="id" property="id" />
+ <result column="sales_ledger_id" property="salesLedgerId" />
+ <result column="sales_ledger_product_id" property="salesLedgerProductId" />
+ <result column="production_product_main_id" property="productionProductMainId" />
+ <result column="scheduling_user_id" property="schedulingUserId" />
+ <result column="scheduling_user_name" property="schedulingUserName" />
+ <result column="finished_num" property="finishedNum" />
+ <result column="work_hours" property="workHours" />
+ <result column="technology_operation_name" property="technologyOperationName" />
+ <result column="scheduling_date" property="schedulingDate" />
+ <result column="create_user" property="createUser" />
+ <result column="create_time" property="createTime" />
+ <result column="update_user" property="updateUser" />
+ <result column="update_time" property="updateTime" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionBomStructureMapper.xml b/src/main/resources/mapper/production/ProductionBomStructureMapper.xml
new file mode 100644
index 0000000..1f70c48
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionBomStructureMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionBomStructureMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionBomStructure">
+ <id column="id" property="id" />
+ <result column="parent_id" property="parentId" />
+ <result column="production_order_id" property="productionOrderId" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="technology_operation_id" property="technologyOperationId" />
+ <result column="production_order_bom_id" property="productionOrderBomId" />
+ <result column="unit_quantity" property="unitQuantity" />
+ <result column="demanded_quantity" property="demandedQuantity" />
+ <result column="unit" property="unit" />
+ <result column="create_user" property="createUser" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOperationMainParamMapper.xml b/src/main/resources/mapper/production/ProductionOperationMainParamMapper.xml
new file mode 100644
index 0000000..57be5b2
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOperationMainParamMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOperationMainParamMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOperationMainParam">
+ <id column="id" property="id" />
+ <result column="technology_routing_operation_param_id" property="technologyRoutingOperationParamId" />
+ <result column="param_code" property="paramCode" />
+ <result column="param_name" property="paramName" />
+ <result column="param_type" property="paramType" />
+ <result column="param_format" property="paramFormat" />
+ <result column="unit" property="unit" />
+ <result column="is_required" property="isRequired" />
+ <result column="remark" property="remark" />
+ <result column="create_user" property="createUser" />
+ <result column="create_time" property="createTime" />
+ <result column="update_user" property="updateUser" />
+ <result column="update_time" property="updateTime" />
+ <result column="dept_id" property="deptId" />
+ <result column="technology_param_id" property="technologyParamId" />
+ <result column="technology_operation_id" property="technologyOperationId" />
+ <result column="technology_operation_param_id" property="technologyOperationParamId" />
+ <result column="technology_routing_operation_id" property="technologyRoutingOperationId" />
+ <result column="standard_value" property="standardValue" />
+ <result column="value" property="value" />
+ <result column="production_order_routing_operation_param_id" property="productionOrderRoutingOperationParamId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml b/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
new file mode 100644
index 0000000..5b67bf6
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOperationTaskMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOperationTask">
+ <id column="id" property="id" />
+ <result column="technology_routing_operation_id" property="technologyRoutingOperationId" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="work_order_no" property="workOrderNo" />
+ <result column="plan_start_time" property="planStartTime" />
+ <result column="plan_end_time" property="planEndTime" />
+ <result column="actual_start_time" property="actualStartTime" />
+ <result column="actual_end_time" property="actualEndTime" />
+ <result column="status" property="status" />
+ <result column="production_order_id" property="productionOrderId" />
+ <result column="plan_quantity" property="planQuantity" />
+ <result column="complete_quantity" property="completeQuantity" />
+ <result column="create_user" property="createUser" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOrderBomMapper.xml b/src/main/resources/mapper/production/ProductionOrderBomMapper.xml
new file mode 100644
index 0000000..eddaa63
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOrderBomMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOrderBomMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOrderBom">
+ <id column="id" property="id" />
+ <result column="parent_id" property="parentId" />
+ <result column="production_order_id" property="productionOrderId" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="technology_operation_id" property="technologyOperationId" />
+ <result column="unit_quantity" property="unitQuantity" />
+ <result column="demanded_quantity" property="demandedQuantity" />
+ <result column="unit" property="unit" />
+ <result column="bom_id" property="bomId" />
+ <result column="create_user" property="createUser" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOrderMapper.xml b/src/main/resources/mapper/production/ProductionOrderMapper.xml
new file mode 100644
index 0000000..c52e291
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOrderMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOrderMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOrder">
+ <id column="id" property="id" />
+ <result column="sales_ledger_id" property="salesLedgerId" />
+ <result column="production_plan_ids" property="productionPlanIds" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="nps_no" property="npsNo" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="technology_routing_id" property="technologyRoutingId" />
+ <result column="quantity" property="quantity" />
+ <result column="complete_quantity" property="completeQuantity" />
+ <result column="start_time" property="startTime" />
+ <result column="end_time" property="endTime" />
+ <result column="sale_ledger_product_id" property="saleLedgerProductId" />
+ <result column="create_user" property="createUser" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOrderPickMapper.xml b/src/main/resources/mapper/production/ProductionOrderPickMapper.xml
new file mode 100644
index 0000000..c4b11f8
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOrderPickMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOrderPickMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOrderPick">
+ <id column="id" property="id" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="quantity" property="quantity" />
+ <result column="batch_no" property="batchNo" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="production_order_id" property="productionOrderId" />
+ <result column="remark" property="remark" />
+ <result column="create_user" property="createUser" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOrderPickRecordMapper.xml b/src/main/resources/mapper/production/ProductionOrderPickRecordMapper.xml
new file mode 100644
index 0000000..37c1285
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOrderPickRecordMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOrderPickRecordMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOrderPickRecord">
+ <id column="id" property="id" />
+ <result column="pick_id" property="pickId" />
+ <result column="production_order_id" property="productionOrderId" />
+ <result column="production_operation_task_id" property="productionOperationTaskId" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="batch_no" property="batchNo" />
+ <result column="pick_quantity" property="pickQuantity" />
+ <result column="before_quantity" property="beforeQuantity" />
+ <result column="after_quantity" property="afterQuantity" />
+ <result column="pick_type" property="pickType" />
+ <result column="remark" property="remark" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="create_user" property="createUser" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOrderRoutingMapper.xml b/src/main/resources/mapper/production/ProductionOrderRoutingMapper.xml
new file mode 100644
index 0000000..40be168
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOrderRoutingMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOrderRoutingMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOrderRouting">
+ <id column="id" property="id" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="production_order_id" property="productionOrderId" />
+ <result column="description" property="description" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="technology_routing_id" property="technologyRoutingId" />
+ <result column="process_route_code" property="processRouteCode" />
+ <result column="bom_id" property="bomId" />
+ <result column="create_user" property="createUser" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml b/src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml
new file mode 100644
index 0000000..d47c4e9
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOrderRoutingOperationMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOrderRoutingOperation">
+ <id column="id" property="id" />
+ <result column="production_order_id" property="productionOrderId" />
+ <result column="technology_routing_operation_id" property="technologyRoutingOperationId" />
+ <result column="technology_routing_id" property="technologyRoutingId" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="drag_sort" property="dragSort" />
+ <result column="is_quality" property="isQuality" />
+ <result column="create_user" property="createUser" />
+ <result column="dept_id" property="deptId" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionOrderRoutingOperationParamMapper.xml b/src/main/resources/mapper/production/ProductionOrderRoutingOperationParamMapper.xml
new file mode 100644
index 0000000..ce337aa
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionOrderRoutingOperationParamMapper.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionOrderRoutingOperationParamMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOrderRoutingOperationParam">
+ <id column="id" property="id" />
+ <result column="production_order_id" property="productionOrderId" />
+ <result column="technology_routing_operation_param_id" property="technologyRoutingOperationParamId" />
+ <result column="param_code" property="paramCode" />
+ <result column="param_name" property="paramName" />
+ <result column="param_type" property="paramType" />
+ <result column="param_format" property="paramFormat" />
+ <result column="unit" property="unit" />
+ <result column="is_required" property="isRequired" />
+ <result column="remark" property="remark" />
+ <result column="create_user" property="createUser" />
+ <result column="create_time" property="createTime" />
+ <result column="update_user" property="updateUser" />
+ <result column="update_time" property="updateTime" />
+ <result column="dept_id" property="deptId" />
+ <result column="param_id" property="paramId" />
+ <result column="technology_operation_id" property="technologyOperationId" />
+ <result column="technology_operation_param_id" property="technologyOperationParamId" />
+ <result column="technology_routing_operation_id" property="technologyRoutingOperationId" />
+ <result column="standard_value" property="standardValue" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionPlanMapper.xml b/src/main/resources/mapper/production/ProductionPlanMapper.xml
new file mode 100644
index 0000000..3e3a683
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductionPlanMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductionPlanMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionPlan">
+ <id column="id" property="id" />
+ <result column="mps_no" property="mpsNo" />
+ <result column="required_date" property="requiredDate" />
+ <result column="remark" property="remark" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="create_user" property="createUser" />
+ <result column="update_user" property="updateUser" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="qty_required" property="qtyRequired" />
+ <result column="state" property="state" />
+ <result column="issued" property="issued" />
+ <result column="source" property="source" />
+ <result column="is_audit" property="isAudit" />
+ <result column="promised_delivery_date" property="promisedDeliveryDate" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/production/ProductionProductInputMapper.xml b/src/main/resources/mapper/production/ProductionProductInputMapper.xml
index 65e2b96..236aa2b 100644
--- a/src/main/resources/mapper/production/ProductionProductInputMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductInputMapper.xml
@@ -1,78 +1,17 @@
-<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProductionProductInputMapper">
- <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductionProductInput">
- <id property="id" column="id"/>
- <result property="productMainId" column="product_main_id"/>
- <result property="productModelId" column="product_model_id"/>
- <result property="quantity" column="quantity"/>
- <result property="tenantId" column="tenant_id"/>
- <result property="createTime" column="create_time"/>
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionProductInput">
+ <id column="id" property="id" />
+ <result column="input_quantity" property="inputQuantity" />
+ <result column="production_product_main_id" property="productionProductMainId" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="update_time" property="updateTime" />
+ <result column="create_user" property="createUser" />
+ <result column="create_time" property="createTime" />
+ <result column="update_user" property="updateUser" />
</resultMap>
- <select id="listPageProductionProductInputDto" resultType="com.ruoyi.production.dto.ProductionProductInputDto">
- select ppi.*,
- pm.model as model,
- ppm.product_no as productNo,
- p.product_name,
- pm.unit
- from
- production_product_input ppi
- left join production_product_main ppm on ppm.id = ppi.product_main_id
- left join product_model pm on pm.id = ppi.product_model_id
- left join product p on p.id = pm.product_id
- <where>
- <if test="c.productMainId != null and c.productMainId > 0">
- and ppm.id = #{c.productMainId}
- </if>
- </where>
- order by ppi.id
- </select>
- <delete id="deleteByProductMainIds" parameterType="java.util.List">
- DELETE FROM production_product_input
- WHERE product_main_id IN
- <foreach collection="productMainIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
-
- </delete>
-
- <select id="selectInputStats" resultType="java.util.Map">
- SELECT
- DATE_FORMAT(ppi.create_time, '%Y-%m-%d') AS date,
- -- 鎶ュ伐鏁伴噺 * 鏈�灏忕郴鏁�
- SUM(ppi.quantity * IFNULL(distinct_ps.unit_quantity, 1)) AS quantity
- FROM production_product_input ppi
- INNER JOIN production_product_main ppm ON ppm.id = ppi.product_main_id
- INNER JOIN product_process_route_item ppri ON ppri.id = ppm.product_process_route_item_id
- INNER JOIN product_process_route ppr ON ppr.id = ppri.product_route_id
- INNER JOIN product_model pm ON pm.id = ppi.product_model_id
- INNER JOIN (
- SELECT
- bom_id,
- process_id,
- product_model_id,
- CAST(SUBSTRING_INDEX(GROUP_CONCAT(unit_quantity ORDER BY id ASC), ',', 1) AS DECIMAL(16, 4)) AS unit_quantity
- FROM product_structure
- GROUP BY bom_id, process_id, product_model_id
- ) distinct_ps ON distinct_ps.bom_id = ppr.bom_id
- AND distinct_ps.process_id = ppri.process_id
- AND distinct_ps.product_model_id = ppi.product_model_id
- <where>
- <if test="startDate != null">
- AND ppi.create_time >= #{startDate}
- </if>
- <if test="endDate != null">
- AND ppi.create_time <= #{endDate}
- </if>
- </where>
- GROUP BY
- DATE_FORMAT(ppi.create_time, '%Y-%m-%d'),
- pm.id,
- pm.model
- ORDER BY
- date DESC,
- pm.id ASC
- </select>
</mapper>
diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index a122e90..d108498 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -1,121 +1,17 @@
-<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProductionProductMainMapper">
- <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductionProductMain">
- <id property="id" column="id"/>
- <result property="productNo" column="product_no"/>
- <result property="userId" column="user_id"/>
- <result property="workOrderId" column="work_order_id"/>
- <result property="tenantId" column="tenant_id"/>
- <result property="createTime" column="create_time"/>
- <result property="status" column="status"/>
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionProductMain">
+ <id column="id" property="id" />
+ <result column="product_no" property="productNo" />
+ <result column="production_operation_task_id" property="productionOperationTaskId" />
+ <result column="dept_id" property="deptId" />
+ <result column="update_time" property="updateTime" />
+ <result column="create_user" property="createUser" />
+ <result column="create_time" property="createTime" />
+ <result column="update_user" property="updateUser" />
</resultMap>
- <select id="listPageProductionProductMainDto" resultType="com.ruoyi.production.dto.ProductionProductMainDto">
- select ppm.*,
- pwo.work_order_no as workOrderNo,
- pwo.status as workOrderStatus,
- u.nick_name as nickName,
- p.product_name as productName,
- pp.name as process,
- pm.model as productModelName,
- ppo.quantity,
- ppo.scrap_qty,
- pm.unit,
- sl.sales_contract_no salesContractNo
- from
- production_product_main ppm
- left join product_work_order pwo on pwo.id = ppm.work_order_id
- left join product_process_route_item ppri on ppri.id = pwo.product_process_route_item_id
- left join product_process pp on pp.id = ppri.process_id
- left join product_order po on po.id = pwo.product_order_id
- left join production_product_output ppo on ppm.id = ppo.product_main_id
- left join product_model pm on pm.id = ppo.product_model_id
- left join product p on p.id = pm.product_id
- left join sales_ledger sl on sl.id = po.sales_ledger_id
- left join sys_user u on u.user_id = ppm.user_id
- <where>
- <if test="c.nickName != null and c.nickName != ''">
- and u.nick_name like concat('%',#{c.nickName},'%')
- </if>
- <if test="c.workOrderNo != null and c.workOrderNo != ''">
- and pwo.work_order_no like concat('%',#{c.workOrderNo},'%')
- </if>
- <if test="c.workOrderStatus != null and c.workOrderStatus != ''">
- and pwo.status = #{c.workOrderStatus}
- </if>
- <if test="c.status != null and c.status != ''">
- and ppm.status = #{c.status}
- </if>
- </where>
- order by ppm.id
-
- </select>
- <select id="getOrderByMainId" resultType="com.ruoyi.production.pojo.ProductOrder">
- select po.*
- from product_order po
- left join product_work_order pwo on po.id = pwo.product_order_id
- left join production_product_main pm on work_order_id = pwo.id
- where pm.id = #{productMainId}
- </select>
- <select id="listProductionDetails" resultType="com.ruoyi.production.dto.ProductionProductMainDto">
- SELECT
- slpa.scheduling_date,
- slpa.scheduling_user_name,
- sl.sales_contract_no,
- sl.customer_name,
- p.product_name,
- pm.model as product_model_name,
- pm.unit,
- slpa.process,
- ppo.quantity,
- slpa.work_hours,
- slpa.work_hours * slpa.finished_num AS wages
- FROM
- production_product_main ppm
- LEFT JOIN sales_ledger_production_accounting slpa ON slpa.product_main_id = ppm.id
- LEFT JOIN production_product_output ppo ON ppm.id = ppo.product_main_id
- LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id
- LEFT JOIN product_order po ON po.id = pwo.product_order_id
- LEFT JOIN process_route pr ON pr.id = po.route_id
- LEFT JOIN product_model pm ON po.product_model_id = pm.id
- LEFT JOIN product p ON p.id = pm.product_id
- LEFT JOIN sales_ledger sl ON po.sales_ledger_id = sl.id
- <where>
- <if test="ew.schedulingUserName != null and ew.schedulingUserName !=''">
- and slpa.scheduling_user_name = #{ew.schedulingUserName}
- </if>
- <if test="ew.entryDate != null " >
- and slpa.scheduling_date >= #{ew.entryDate}
- and slpa.scheduling_date < DATE_ADD(#{ew.entryDate}, INTERVAL 1 DAY)
- </if>
- <if test="ew.entryDateStart != null and ew.entryDateEnd != null" >
- and slpa.scheduling_date >= #{ew.entryDateStart}
- and slpa.scheduling_date < date_add(#{ew.entryDateEnd}, INTERVAL 1 DAY)
- </if>
- </where>
- </select>
- <select id="listMain" resultType="java.lang.Long">
- SELECT ppm.id FROM production_product_main ppm
- left join product_work_order pwo on pwo.id = ppm.work_order_id
- left join product_order po on po.id = pwo.product_order_id
- left join sales_ledger sl on sl.id = po.sales_ledger_id
- <where>
- <if test="idList != null and idList.size() > 0">
- and sl.id in
- <foreach item="id" collection="idList" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- </where>
- </select>
-
- <delete id="deleteByWorkOrderIds" parameterType="java.util.List">
- DELETE FROM production_product_main
- WHERE work_order_id IN
- <foreach collection="workOrderIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </delete>
</mapper>
diff --git a/src/main/resources/mapper/production/ProductionProductOutputMapper.xml b/src/main/resources/mapper/production/ProductionProductOutputMapper.xml
index 3b44135..0656e91 100644
--- a/src/main/resources/mapper/production/ProductionProductOutputMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductOutputMapper.xml
@@ -1,61 +1,18 @@
-<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProductionProductOutputMapper">
- <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductionProductOutput">
- <id property="id" column="id"/>
- <result property="productMainId" column="product_main_id"/>
- <result property="productModelId" column="product_model_id"/>
- <result property="quantity" column="quantity"/>
- <result property="tenantId" column="tenant_id"/>
- <result property="createTime" column="create_time"/>
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionProductOutput">
+ <id column="id" property="id" />
+ <result column="production_product_main_id" property="productionProductMainId" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="quantity" property="quantity" />
+ <result column="scrap_qty" property="scrapQty" />
+ <result column="update_time" property="updateTime" />
+ <result column="create_user" property="createUser" />
+ <result column="create_time" property="createTime" />
+ <result column="update_user" property="updateUser" />
</resultMap>
- <select id="listPageProductionProductOutputDto" resultType="com.ruoyi.production.dto.ProductionProductOutputDto">
- select ppo.*,
- pm.model as model,
- ppm.product_no as productNo
- from
- production_product_output ppo
- left join production_product_main ppm on ppm.id = ppo.product_main_id
- left join product_model pm on pm.id = ppo.product_model_id
- <where>
- <if test="c.productMainId != null and c.productMainId > 0">
- and ppm.id = #{c.productMainId}
- </if>
- </where>
- order by ppo.id
- </select>
-
- <delete id="deleteByProductMainIds" parameterType="java.util.List">
- DELETE FROM production_product_output
- WHERE product_main_id IN
- <foreach collection="productMainIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </delete>
- <select id="selectOutputStats" resultType="com.ruoyi.production.dto.ProductionProductOutputDto">
- SELECT
- create_time,
- quantity,
- scrap_qty
- FROM
- production_product_output
- WHERE
- create_time >= #{startDate}
- AND create_time <= #{endDate}
- </select>
-
- <select id="selectDailyOutputStats" resultType="java.util.Map">
- SELECT
- DATE_FORMAT(create_time, '%Y-%m-%d') as date,
- SUM(quantity-scrap_qty) as quantity
- FROM
- production_product_output
- WHERE
- create_time >= #{startDate}
- AND create_time <= #{endDate}
- GROUP BY
- DATE_FORMAT(create_time, '%Y-%m-%d')
- </select>
</mapper>
diff --git a/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml b/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
index 8a32b42..f2e460a 100644
--- a/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
+++ b/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
@@ -2,7 +2,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper">
- <select id="listPage" resultType="com.ruoyi.production.dto.SalesLedgerProductionAccountingDto">
+ <select id="listPage" resultType="com.ruoyi.production2.dto.SalesLedgerProductionAccountingDto">
SELECT
t4.id,
t4.finished_num * t4.work_hours as wages,
@@ -51,7 +51,7 @@
order by t4.scheduling_date desc
</select>
<select id="pageProductionAccounting"
- resultType="com.ruoyi.production.dto.SalesLedgerProductionAccountingDto">
+ resultType="com.ruoyi.production2.dto.SalesLedgerProductionAccountingDto">
SELECT
slpa.scheduling_user_id,
slpa.scheduling_user_name,
@@ -104,7 +104,7 @@
GROUP BY DATE(ppout.create_time)
ORDER BY DATE(ppout.create_time);
</select>
- <select id="getByUserId" resultType="com.ruoyi.production.dto.UserAccountDto">
+ <select id="getByUserId" resultType="com.ruoyi.production2.dto.UserAccountDto">
select
slpa.scheduling_user_id as user_id,
pp.type,
diff --git a/src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml b/src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml
index 4cff920..92198b5 100644
--- a/src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml
+++ b/src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml
@@ -2,7 +2,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.SalesLedgerSchedulingMapper">
- <select id="listPage" resultType="com.ruoyi.production.dto.SalesLedgerSchedulingDto">
+ <select id="listPage" resultType="com.ruoyi.production2.dto.SalesLedgerSchedulingDto">
SELECT
T2.id as salesLedgerProductId,
T1.id as salesLedgerId,
@@ -48,7 +48,7 @@
</if>
order by T1.entry_date desc
</select>
- <select id="list" resultType="com.ruoyi.production.dto.SalesLedgerSchedulingDto">
+ <select id="list" resultType="com.ruoyi.production2.dto.SalesLedgerSchedulingDto">
SELECT
T2.id,
ifNull(sum(t3.scheduling_num),0) AS schedulingNum,
@@ -68,7 +68,7 @@
where T1.id is not null and T2.type = 1
GROUP BY T2.id
</select>
- <select id="listPageProcess" resultType="com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto">
+ <select id="listPageProcess" resultType="com.ruoyi.production2.dto.SalesLedgerSchedulingProcessDto">
SELECT
t3.id as salesLedgerProductId,
T1.id as salesLedgerId,
diff --git a/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml b/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
index 4ec771f..974220b 100644
--- a/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
+++ b/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
@@ -2,7 +2,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.SalesLedgerWorkMapper">
- <select id="listPage" resultType="com.ruoyi.production.dto.SalesLedgerWorkDto">
+ <select id="listPage" resultType="com.ruoyi.production2.dto.SalesLedgerWorkDto">
SELECT
t4.id,
t4.status,
--
Gitblit v1.9.3