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("å ³èç©æä¿¡æ¯è¡¨ID") private Long productMaterialId; } 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; } 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 { } src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductBomController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductOrderController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductOrderMaterialController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductProcessController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductProcessRouteItemController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductStructureController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductWorkOrderFileController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/ProductionAccountController.java
ÎļþÃû´Ó src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.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 { } src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.javacopy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java copy to src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java
Îļþ´Ó src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.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 { } 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 { } src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.javacopy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java copy to src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java
Îļþ´Ó src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.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 { } src/main/java/com/ruoyi/production/controller/ProductionOrderBomController.javacopy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java copy to src/main/java/com/ruoyi/production/controller/ProductionOrderBomController.java
Îļþ´Ó src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.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 { } src/main/java/com/ruoyi/production/controller/ProductionOrderController.javacopy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java copy to src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
Îļþ´Ó src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.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 { } src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.javacopy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java copy to src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java
Îļþ´Ó src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.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 { } src/main/java/com/ruoyi/production/controller/ProductionOrderPickRecordController.javacopy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java copy to src/main/java/com/ruoyi/production/controller/ProductionOrderPickRecordController.java
Îļþ´Ó src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.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 { } src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.javacopy from src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.java copy to src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java
Îļþ´Ó src/main/java/com/ruoyi/production/controller/ProductProcessRouteController.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 { } 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 { } 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 { } 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); } } 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)); } } 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, "ç产æ¥å·¥æ°æ®"); } } 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)); } } src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/SalesLedgerSchedulingController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/BomImportDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/DaiDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductBomDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductOrderDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductOrderMaterialDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductProcessDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductProcessRouteItemDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductStructureDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductionDispatchAddDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductionProductInputDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductionProductOutputDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/ProductionReportDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/SalesLedgerProductDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/SalesLedgerProductionAccountingDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingProcessDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/UserAccountDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/dto/UserProductionAccountingDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProcessRouteItemMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProcessRouteMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductBomMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductOrderMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductOrderMaterialMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductProcessRouteItemMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductProcessRouteMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductWorkOrderFileMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
ÎļþÒÑɾ³ý 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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); } 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); } 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); } src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/SalesLedgerSchedulingMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/SalesLedgerWorkMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/mapper/SpeculativeTradingInfoMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProcessRouteItem.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductBom.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductOrder.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductOrderMaterial.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductProcess.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductProcessRoute.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductProcessRouteItem.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductStructure.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductWorkOrder.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/ProductWorkOrderFile.java
ÎļþÒÑɾ³ý 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("éå®å°è´¦id") private Long salesLedgerId; @ApiModelProperty("éå®äº§åè§æ ¼id") private Long salesLedgerProductId; @ApiModelProperty("æ¥å·¥è¡¨id") private Long productionProductMainId; @ApiModelProperty("ç产人id") 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; } 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("ç¶èç¹ID") 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("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; } 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("å·¥èºè·¯çº¿å·¥åºåæ°è¡¨id") 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; } 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("å·¥èºè·¯çº¿å·¥åºè¡¨id") 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("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; } 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("éå®å°è´¦id") 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("éå®äº§åè§æ ¼id") private Integer saleLedgerProductId; @ApiModelProperty("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; } 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("ç¶èç¹ID") 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çid") private Long bomId; @ApiModelProperty("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; } 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("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; } 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("å ³è颿åidï¼production_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æ£å¸¸é¢æ 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("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; } 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çid") private Integer bomId; @ApiModelProperty("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; } 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("å·¥èºè·¯çº¿å·¥åºè¡¨id") 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("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; } 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("å·¥èºè·¯çº¿å·¥åºåæ°è¡¨id") 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; } 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; } 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("æ¥å·¥è¡¨id") 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("å建人ID") @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; } 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("å建人ID") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("å½å ¥æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("æ´æ°ç¨æ·") @TableField(fill = FieldFill.INSERT_UPDATE) private Long updateUser; } 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("æ¥å·¥åid") 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("å建人ID") @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; } src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/SalesLedgerScheduling.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/pojo/SpeculativeTradingInfo.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProcessRouteItemService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProcessRouteService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductBomService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductOrderMaterialService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductOrderService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductProcessRouteItemService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductProcessRouteService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductProcessService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductStructureService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductWorkOrderFileService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
ÎļþÒÑɾ³ý 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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> { } 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); } 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); } 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); } 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); } src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/SalesLedgerSchedulingService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/SalesLedgerWorkService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductOrderMaterialServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderFileServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
ÎļþÒÑɾ³ý 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 { } 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 { } 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 { } 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 { } 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 { } 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 { } 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 { } 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 { } 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 { } 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 { } 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 { } 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("忥æ£å¨è¿è¡ä¸ï¼æ¬æ¬¡ {} åæ¥è¯·æ±è¢«è·³è¿", 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; // } // // // è§£æå¹¶ä¿åæ°æ® // 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("è§£ææ¥æå¤±è´¥: {}", 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("çäº§éæ±Excelå¯¼å ¥å¤±è´¥", e); // throw new ServiceException("Excelè§£æå¤±è´¥"); // } // // 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("å¯¼å ¥å¤±è´¥ï¼Excel ä¸åå¨éå¤çç³è¯·åç¼å·: " + 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, "éå®çäº§éæ±æ°æ®"); // } // //} 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); } } 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) { //å¦æè¯¥å·¥åºæ²¡æäº§åç»æçæå ¥å,é£è¿ä¸ªæå ¥åå产åºåæ¯åä¸ä¸ª 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); } } 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); } } src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
ÎļþÒÑɾ³ý 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, 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 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 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, 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, 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 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, 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 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, 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" /> 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},'%') 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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, 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, 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,