From 2a21bf56c3296510fa56024b6062aae8e99d2293 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期四, 08 五月 2025 10:37:13 +0800 Subject: [PATCH] 生成钣金工单计划 基础代码 --- aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java | 12 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java | 6 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java | 4 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireError.java | 60 +++ aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireErrorService.java | 61 +++ aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml | 21 + aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomStockDetailServiceImpl.java | 41 ++ aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java | 2 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java | 17 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteHeaderMapper.java | 7 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml | 31 + aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java | 109 +++++ aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialStorageManagement.java | 22 + aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java | 63 +++ aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml | 13 aps-modules/aps-core/src/main/resources/mapper/core/ApsPartPlanMapper.xml | 16 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomStockDetailService.java | 7 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java | 275 ++++++++++++++ aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomStockDetail.java | 9 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java | 12 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBomHeader.java | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java | 26 + aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomOrderDetail.java | 16 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomOrderDetailService.java | 6 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBatch.java | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java | 29 + aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireErrorServiceImpl.java | 96 +++++ aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml | 103 +++++ aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcessRouteLine.java | 10 aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml | 13 31 files changed, 1,051 insertions(+), 42 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java new file mode 100644 index 0000000..1d16672 --- /dev/null +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java @@ -0,0 +1,109 @@ +package com.aps.core.controller.mainPlan; + +import com.aps.common.core.utils.poi.ExcelUtil; +import com.aps.common.core.web.controller.BaseController; +import com.aps.common.core.web.domain.AjaxResult; +import com.aps.common.core.web.page.TableDataInfo; +import com.aps.common.log.annotation.Log; +import com.aps.common.log.enums.BusinessType; +import com.aps.common.security.annotation.RequiresPermissions; +import com.aps.core.domain.ApsPlateStandardRequireError; +import com.aps.core.service.IApsPlateStandardRequireErrorService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭疌ontroller + * + * @author zhl + * @date 2025-05-08 + */ + +@Tag(name = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", description = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭帴鍙�") +@RestController +@RequestMapping("/ApsPlateStandardRequireError") +public class ApsPlateStandardRequireErrorController extends BaseController +{ + @Autowired + private IApsPlateStandardRequireErrorService apsPlateStandardRequireErrorService; + + /** + * 鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛� + */ + + @Operation(summary = "鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛�", description = "鍒嗛〉鏌ヨ") + @RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:list") + @GetMapping("/list") + public TableDataInfo list(ApsPlateStandardRequireError apsPlateStandardRequireError) + { + startPage(); + List<ApsPlateStandardRequireError> list = apsPlateStandardRequireErrorService.selectApsPlateStandardRequireErrorList(apsPlateStandardRequireError); + return getDataTable(list); + } + + /** + * 瀵煎嚭閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛� + */ + @Operation(summary = "瀵煎嚭閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛�", description = "瀵煎嚭") + @RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:export") + @Log(title = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ApsPlateStandardRequireError apsPlateStandardRequireError) + { + List<ApsPlateStandardRequireError> list = apsPlateStandardRequireErrorService.selectApsPlateStandardRequireErrorList(apsPlateStandardRequireError); + ExcelUtil<ApsPlateStandardRequireError> util = new ExcelUtil<ApsPlateStandardRequireError>(ApsPlateStandardRequireError.class); + util.exportExcel(response, list, "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭暟鎹�"); + } + + /** + * 鑾峰彇閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭缁嗕俊鎭� + */ + @Operation(summary = "鑾峰彇閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭缁嗕俊鎭�", description = "鏍规嵁id鑾峰彇") + @RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(apsPlateStandardRequireErrorService.selectApsPlateStandardRequireErrorById(id)); + } + + /** + * 鏂板閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + */ + @Operation(summary = "鏂板閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", description = "鍗曚釜鏂板") + @RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:add") + @Log(title = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ApsPlateStandardRequireError apsPlateStandardRequireError) + { + return toAjax(apsPlateStandardRequireErrorService.insertApsPlateStandardRequireError(apsPlateStandardRequireError)); + } + + /** + * 淇敼閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + */ + @Operation(summary = "淇敼閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", description = "鍗曚釜淇敼") + @RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:edit") + @Log(title = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ApsPlateStandardRequireError apsPlateStandardRequireError) + { + return toAjax(apsPlateStandardRequireErrorService.updateApsPlateStandardRequireError(apsPlateStandardRequireError)); + } + + /** + * 鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + */ + @Operation(summary = "鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", description = "鎵归噺鍒犻櫎") + @RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:remove") + @Log(title = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(apsPlateStandardRequireErrorService.deleteApsPlateStandardRequireErrorByIds(ids)); + } +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java index 00845b6..4e3caf4 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java @@ -3,6 +3,7 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; @@ -17,6 +18,7 @@ */ @EqualsAndHashCode(callSuper = true) @Data +@Builder public class ApsBom extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBomHeader.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBomHeader.java index 9725dac..2047632 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBomHeader.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBomHeader.java @@ -3,6 +3,7 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; @@ -17,6 +18,7 @@ */ @EqualsAndHashCode(callSuper = true) @Data +@Builder public class ApsBomHeader extends BaseEntity { @Serial diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialStorageManagement.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialStorageManagement.java index 7e247ae..62e5dfd 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialStorageManagement.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialStorageManagement.java @@ -42,6 +42,13 @@ @Excel(name = "鍒锋柊鏃ユ湡") private String refreshDate; + /**鍓╀綑搴撳瓨*/ + private BigDecimal remainderStock; + + + /**淇敼鐗堟湰*/ + private Integer version; + public void setId(String id) { this.id = id; @@ -102,6 +109,21 @@ return refreshDate; } + public BigDecimal getRemainderStock() { + return remainderStock; + } + + public void setRemainderStock(BigDecimal remainderStock) { + this.remainderStock = remainderStock; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java index 7847c91..e032aa6 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java @@ -3,9 +3,12 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import java.io.Serial; import java.math.BigDecimal; import java.util.Date; @@ -13,10 +16,13 @@ * 閽i噾璁″垝绠$悊瀵硅薄 aps_plate_plan * * @author ruoyi - * @date 2025-04-08 + * @date 2025-04-08 */ +@EqualsAndHashCode(callSuper = true) +@Data public class ApsPlatePlan extends BaseEntity { + @Serial private static final long serialVersionUID = 1L; /** 涓婚敭id */ @@ -180,7 +186,14 @@ /** 鏈尮閰嶇殑鐢熶骇鏁伴噺*/ private BigDecimal unmatchedQuantity; + /** 涓撲笟褰掑睘*/ + private String professionalAffiliation; + /** 闇�姹傝拷婧疘D*/ + private String requireId; + + private Integer version; +/* public String getOpStatus() { return opStatus; } @@ -605,5 +618,5 @@ public void setPlant(String plant) { this.plant = plant; - } + }*/ } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java index 71e5891..b7f7d39 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java @@ -6,6 +6,8 @@ import lombok.EqualsAndHashCode; import java.io.Serial; +import java.math.BigDecimal; +import java.util.Date; /** * 閽i噾宸ュ崟鏍囧噯闇�姹傚璞� aps_plate_standard_require @@ -41,7 +43,7 @@ /** BOM鐢ㄩ噺 */ @Excel(name = "BOM鐢ㄩ噺") - private String bomUseAmount; + private BigDecimal bomUseAmount; /** 宸ヨ壓璺嚎ID */ @Excel(name = "宸ヨ壓璺嚎ID") @@ -57,19 +59,19 @@ /** 鍑�闇�姹傞噺 */ @Excel(name = "鍑�闇�姹傞噺") - private String netRequirement; + private BigDecimal netRequirement; /** 璁″垝寮�宸ユ棩 */ @Excel(name = "璁″垝寮�宸ユ棩") - private String startDate; + private Date startDate; /** 璁″垝瀹屽伐鏃� */ @Excel(name = "璁″垝瀹屽伐鏃�") - private String completeDate; + private Date completeDate; /** 闇�姹傛棩鏈� */ @Excel(name = "闇�姹傛棩鏈�") - private String demandDate; + private Date demandDate; /** 閫傜敤宸ュ巶 */ @Excel(name = "閫傜敤宸ュ巶") diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBatch.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBatch.java index d617f97..0074085 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBatch.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBatch.java @@ -1,6 +1,7 @@ package com.aps.core.domain; import com.aps.common.core.web.domain.BaseEntity; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; @@ -14,6 +15,7 @@ */ @EqualsAndHashCode(callSuper = true) @Data +@Builder public class ApsPlateStandardRequireBatch extends BaseEntity { @Serial diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomOrderDetail.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomOrderDetail.java index 1a47782..6bbf5c7 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomOrderDetail.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomOrderDetail.java @@ -2,10 +2,12 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.math.BigDecimal; /** * ApsPlateStandardRequireBomOrderDetail瀵硅薄 aps_plate_standard_require_bom_order_detail @@ -15,6 +17,7 @@ */ @EqualsAndHashCode(callSuper = true) @Data +@Builder public class ApsPlateStandardRequireBomOrderDetail extends BaseEntity { @Serial @@ -25,38 +28,31 @@ /** 闇�姹傝拷婧疘D */ @Excel(name = "闇�姹傝拷婧疘D") - private String requireId; /** bom_line_id */ @Excel(name = "bom_line_id") - private String bomLineId; /** 鏂欏彿 */ @Excel(name = "鏂欏彿") - private String bomLineCode; /** 璁㈠崟鍙� */ @Excel(name = "璁㈠崟鍙�") - private String docNo; /** 鎵e噺鍓嶆暟閲� */ @Excel(name = "鎵e噺鍓嶆暟閲�") - - private String beforeProdAmount; + private BigDecimal beforeProdAmount; /** 鍖归厤鏁伴噺 */ @Excel(name = "鍖归厤鏁伴噺") - - private String deductionAmount; + private BigDecimal deductionAmount; /** 鎵e噺鍚庢暟閲� */ @Excel(name = "鎵e噺鍚庢暟閲�") - - private String afterProdAmount; + private BigDecimal afterProdAmount; private String orgCode; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomStockDetail.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomStockDetail.java index 6f4ea1a..25fc2b1 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomStockDetail.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireBomStockDetail.java @@ -2,10 +2,12 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.math.BigDecimal; /** * ApsPlateStandardRequireBomStockDetail瀵硅薄 aps_plate_standard_require_bom_stock_detail @@ -15,6 +17,7 @@ */ @EqualsAndHashCode(callSuper = true) @Data +@Builder public class ApsPlateStandardRequireBomStockDetail extends BaseEntity { @Serial @@ -38,15 +41,15 @@ /** 鎵e噺鍓嶅簱瀛橀噺 */ @Excel(name = "鎵e噺鍓嶅簱瀛橀噺") - private String beforeStockAmount; + private BigDecimal beforeStockAmount; /** 鎵e噺搴撳瓨閲� */ @Excel(name = "鎵e噺搴撳瓨閲�") - private String deductionAmount; + private BigDecimal deductionAmount; /** 鎵e噺鍚庡簱瀛橀噺 */ @Excel(name = "鎵e噺鍚庡簱瀛橀噺") - private String afterStockAmount; + private BigDecimal afterStockAmount; private String orgCode; private String batchNumber; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireError.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireError.java new file mode 100644 index 0000000..e83f199 --- /dev/null +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequireError.java @@ -0,0 +1,60 @@ +package com.aps.core.domain; + +import com.aps.common.core.annotation.Excel; +import com.aps.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭璞� aps_plate_standard_require_error + * + * @author zhl + * @date 2025-05-08 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Schema(description = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭疄浣撶被") +public class ApsPlateStandardRequireError extends BaseEntity +{ + @Serial + private static final long serialVersionUID = 1L; + private Long id; + + /** 鎵规鍙� */ + @Excel(name = "鎵规鍙�") + @Schema(description = "鎵规鍙�") + private String batchNumber; + + /** 闇�姹侷d鍙� */ + @Excel(name = "闇�姹侷d鍙�") + @Schema(description = "闇�姹侷d鍙�") + private String requireId; + + /** 宸ュ崟鍙� */ + @Excel(name = "宸ュ崟鍙�") + @Schema(description = "宸ュ崟鍙�") + private String docNum; + + /** 鏂欏彿 */ + @Excel(name = "鏂欏彿") + @Schema(description = "鏂欏彿") + private String itemNum; + + /** 閫傜敤宸ュ巶 */ + @Excel(name = "閫傜敤宸ュ巶") + @Schema(description = "閫傜敤宸ュ巶") + private String orgCode; + + /** 寮傚父淇℃伅 */ + @Excel(name = "寮傚父淇℃伅") + @Schema(description = "寮傚父淇℃伅") + private String message; + + /** 鏄惁鍒犻櫎锛�0鏈夋晥 1鍒犻櫎 */ + @Schema(description = "鏄惁鍒犻櫎锛�0鏈夋晥 1鍒犻櫎") + private String delFlag; + +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcessRouteLine.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcessRouteLine.java index adefdee..c147e2c 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcessRouteLine.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcessRouteLine.java @@ -2,10 +2,12 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.math.BigDecimal; /** * 鏍囧噯宸ヨ壓璺嚎Line瀵硅薄 aps_standard_process_route_line @@ -16,23 +18,20 @@ @EqualsAndHashCode(callSuper = true) @Data +@Builder public class ApsStandardProcessRouteLine extends BaseEntity { @Serial private static final long serialVersionUID = 1L; - /** $column.columnComment */ - private Long id; /** 宸ヨ壓璺嚎ID */ @Excel(name = "宸ヨ壓璺嚎ID") - private String routeId; /** 宸ュ簭搴忓彿 */ @Excel(name = "宸ュ簭搴忓彿") - private String routeNum; /** 宸ュ簭鍚嶇О */ @@ -61,9 +60,10 @@ /** 璁捐浜ц兘 */ @Excel(name = "璁捐浜ц兘") - private String designCapacity; + private BigDecimal designCapacity; /** 鏄惁鍒犻櫎锛�0鏈夋晥 1鍒犻櫎 */ private Long delFlag; + private BigDecimal routeTime; } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java index 3769713..cb0dfd8 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java @@ -2,6 +2,7 @@ import java.util.List; import com.aps.core.domain.ApsBom; +import jakarta.annotation.Resource; import org.apache.ibatis.annotations.Mapper; /** @@ -13,6 +14,7 @@ @Mapper public interface ApsBomMapper { + /** * 鏌ヨBOM鏁版嵁绠$悊 * @@ -60,4 +62,8 @@ * @return 缁撴灉 */ public int deleteApsBomByIds(Long[] ids); + /** + * 閫氳繃宸ュ巶鍜孊OMHeaderId鏌ヨBOMLine鏁版嵁 + * */ + List< ApsBom> selectApsBomLineList(String orgCode,String bomHeaderId); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java index befee88..dcfe594 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java @@ -1,5 +1,6 @@ package com.aps.core.mapper; +import java.math.BigDecimal; import java.util.List; import com.aps.core.domain.ApsMaterialStorageManagement; import org.apache.ibatis.annotations.Mapper; @@ -60,4 +61,7 @@ * @return 缁撴灉 */ public int deleteApsMaterialStorageManagementByIds(String[] ids); + + + int updateMaterialStorageByVersion(BigDecimal remainderStock, Integer version); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java index a79024b..5f1df59 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java @@ -64,4 +64,16 @@ public int insertPlatePlanFromTempByBatchNumber(String batchNumber); int removeAllPlatePlans(); + + List<ApsPlatePlan> selectPlatePlanByPlantMajor(String plant,String professionalAffiliation); + + /** + * 鑾峰彇鏈尮閰嶇殑瀛愯鍒� + * */ + ApsPlatePlan selectUnMatchPlateSubPlan(String plant); + + /** + * 鏇存柊瀛愯鍒掓湭鍖归厤鏁伴噺 + * */ + int updatePlanUnMatchQtyByVersion(ApsPlatePlan plan); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java new file mode 100644 index 0000000..12f5b30 --- /dev/null +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java @@ -0,0 +1,63 @@ +package com.aps.core.mapper; + +import java.util.List; +import com.aps.core.domain.ApsPlateStandardRequireError; +import org.apache.ibatis.annotations.Mapper; + +/** + * 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭疢apper鎺ュ彛 + * + * @author zhl + * @date 2025-05-08 + */ +@Mapper +public interface ApsPlateStandardRequireErrorMapper +{ + /** + * 鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param id 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭富閿� + * @return 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + */ + public ApsPlateStandardRequireError selectApsPlateStandardRequireErrorById(Long id); + + /** + * 鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭泦鍚� + */ + public List<ApsPlateStandardRequireError> selectApsPlateStandardRequireErrorList(ApsPlateStandardRequireError apsPlateStandardRequireError); + + /** + * 鏂板閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 缁撴灉 + */ + public int insertApsPlateStandardRequireError(ApsPlateStandardRequireError apsPlateStandardRequireError); + + /** + * 淇敼閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 缁撴灉 + */ + public int updateApsPlateStandardRequireError(ApsPlateStandardRequireError apsPlateStandardRequireError); + + /** + * 鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param id 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭富閿� + * @return 缁撴灉 + */ + public int deleteApsPlateStandardRequireErrorById(Long id); + + /** + * 鎵归噺鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteApsPlateStandardRequireErrorByIds(Long[] ids); +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteHeaderMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteHeaderMapper.java index 9c88f6c..2d3a6ed 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteHeaderMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteHeaderMapper.java @@ -8,7 +8,7 @@ * 鏍囧噯宸ヨ壓璺嚎HeaderMapper鎺ュ彛 * * @author zhl - * @date 2025-05-06 + * @date 2025-05-06 */ @Mapper public interface ApsStandardProcessRouteHeaderMapper @@ -60,4 +60,9 @@ * @return 缁撴灉 */ public int deleteApsStandardProcessRouteHeaderByIds(Long[] ids); + + /** + * 鏍规嵁宸ュ巶銆佺墿鏂欏彿鏌ヨ宸ヨ壓璺嚎 + * */ + List<ApsStandardProcessRouteHeader> queryStandardProcessRouteHeaderByPlantAndItemCode(String orgCode, String itemCode); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java index f3184f7..c737269 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java @@ -58,4 +58,6 @@ * @return 缁撴灉 */ public int deleteApsBomById(Long id); + + List<ApsBom> selectApsBomLineList(String plant, String itemNumber); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomOrderDetailService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomOrderDetailService.java index a11066a..6bee8d5 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomOrderDetailService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomOrderDetailService.java @@ -1,6 +1,10 @@ package com.aps.core.service; +import java.math.BigDecimal; import java.util.List; + +import com.aps.core.domain.ApsPlatePlan; +import com.aps.core.domain.ApsPlateStandardRequire; import com.aps.core.domain.ApsPlateStandardRequireBomOrderDetail; /** @@ -58,4 +62,6 @@ * @return 缁撴灉 */ public int deleteApsPlateStandardRequireBomOrderDetailById(Long id); + + void savePlastPlanAndBomOrderDetail(ApsPlateStandardRequire require, ApsPlatePlan platePlan, BigDecimal subtract, BigDecimal stock, BigDecimal netRequirement); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomStockDetailService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomStockDetailService.java index 78309f8..9a187ed 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomStockDetailService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBomStockDetailService.java @@ -1,6 +1,11 @@ package com.aps.core.service; +import java.math.BigDecimal; import java.util.List; + +import com.aps.core.domain.ApsBom; +import com.aps.core.domain.ApsMaterialStorageManagement; +import com.aps.core.domain.ApsPlatePlan; import com.aps.core.domain.ApsPlateStandardRequireBomStockDetail; /** @@ -58,4 +63,6 @@ * @return 缁撴灉 */ public int deleteApsPlateStandardRequireBomStockDetailById(Long id); + + void saveStorageAndDetail(ApsMaterialStorageManagement itemStorage, ApsPlatePlan plan, ApsBom bomLine, String batchNum, BigDecimal deductionAmount, BigDecimal afterStockAmount); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireErrorService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireErrorService.java new file mode 100644 index 0000000..7919832 --- /dev/null +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireErrorService.java @@ -0,0 +1,61 @@ +package com.aps.core.service; + +import java.util.List; +import com.aps.core.domain.ApsPlateStandardRequireError; + +/** + * 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭疭ervice鎺ュ彛 + * + * @author zhl + * @date 2025-05-08 + */ +public interface IApsPlateStandardRequireErrorService +{ + /** + * 鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param id 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭富閿� + * @return 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + */ + public ApsPlateStandardRequireError selectApsPlateStandardRequireErrorById(Long id); + + /** + * 鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭泦鍚� + */ + public List<ApsPlateStandardRequireError> selectApsPlateStandardRequireErrorList(ApsPlateStandardRequireError apsPlateStandardRequireError); + + /** + * 鏂板閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 缁撴灉 + */ + public int insertApsPlateStandardRequireError(ApsPlateStandardRequireError apsPlateStandardRequireError); + + /** + * 淇敼閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 缁撴灉 + */ + public int updateApsPlateStandardRequireError(ApsPlateStandardRequireError apsPlateStandardRequireError); + + /** + * 鎵归噺鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param ids 闇�瑕佸垹闄ょ殑閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭富閿泦鍚� + * @return 缁撴灉 + */ + public int deleteApsPlateStandardRequireErrorByIds(Long[] ids); + + /** + * 鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭俊鎭� + * + * @param id 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭富閿� + * @return 缁撴灉 + */ + public int deleteApsPlateStandardRequireErrorById(Long id); +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java index 6036b4f..0acb385 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java @@ -1,11 +1,11 @@ package com.aps.core.service.impl; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import com.aps.common.core.utils.DateUtils; +import com.aps.core.domain.ApsBomHeader; +import com.aps.core.mapper.ApsBomHeaderMapper; +import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsBomMapper; @@ -24,6 +24,8 @@ @Autowired private ApsBomMapper apsBomMapper; + @Resource + private ApsBomHeaderMapper bomHeaderMapper; /** * 鏌ヨBOM鏁版嵁绠$悊 * @@ -97,10 +99,21 @@ @Override public List<ApsBom> selectApsBomList(ApsBom apsBom) { - return apsBomMapper.selectApsBomList(apsBom); - } - - + /** + * 閫氳繃鏂欏彿銆佸伐鍘傛煡璇OMLine鏁版嵁鍒楄〃 + * */ + @Override + public List<ApsBom> selectApsBomLineList(String plant, String itemNumber) + { + List<ApsBom> bomLineList =new ArrayList<>(); + ApsBomHeader headerParam = ApsBomHeader.builder().itemCode(itemNumber).orgCode(plant).build(); + Optional<ApsBomHeader> first = bomHeaderMapper.selectApsBomHeaderList(headerParam).stream().findFirst(); + if (first.isPresent()){ + ApsBomHeader apsBomHeader = first.get(); + bomLineList = apsBomMapper.selectApsBomLineList(plant, apsBomHeader.getBomHeaderId()); + } + return bomLineList; + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java index 1dc3338..29b53d1 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java @@ -1,7 +1,13 @@ package com.aps.core.service.impl; +import java.math.BigDecimal; import java.util.List; + +import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; +import com.aps.core.domain.ApsPlatePlan; +import com.aps.core.domain.ApsPlateStandardRequire; +import com.aps.core.mapper.ApsPlatePlanMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPlateStandardRequireBomOrderDetailMapper; @@ -19,7 +25,8 @@ { @Autowired private ApsPlateStandardRequireBomOrderDetailMapper apsPlateStandardRequireBomOrderDetailMapper; - + @Autowired + private ApsPlatePlanMapper apsPlatePlanMapper; /** * 鏌ヨApsPlateStandardRequireBomOrderDetail * @@ -93,4 +100,21 @@ { return apsPlateStandardRequireBomOrderDetailMapper.deleteApsPlateStandardRequireBomOrderDetailById(id); } + + @Override + public void savePlastPlanAndBomOrderDetail(ApsPlateStandardRequire require, ApsPlatePlan platePlan, BigDecimal subtract, BigDecimal stock, BigDecimal netRequirement) { + platePlan.setUnmatchedQuantity(subtract); + apsPlatePlanMapper.updatePlanUnMatchQtyByVersion(platePlan); + /* 璁板綍宸ュ崟涓庡噣闇�姹傜殑鍖归厤鍏崇郴*/ + ApsPlateStandardRequireBomOrderDetail bomOrderDetail = ApsPlateStandardRequireBomOrderDetail.builder() + .id(IdUtil.getSnowflakeNextId()) + .requireId(require.getRequireId()) + .bomLineId(require.getBomLineId()) + .bomLineCode(require.getBomLineCode()) + .docNo(platePlan.getDocumentNumber()) + .beforeProdAmount(stock) + .deductionAmount(netRequirement) + .afterProdAmount(subtract).build(); + apsPlateStandardRequireBomOrderDetailMapper.insertApsPlateStandardRequireBomOrderDetail(bomOrderDetail); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomStockDetailServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomStockDetailServiceImpl.java index d7a13f5..33b8409 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomStockDetailServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomStockDetailServiceImpl.java @@ -1,11 +1,17 @@ package com.aps.core.service.impl; +import java.math.BigDecimal; import java.util.List; + +import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; +import com.aps.common.security.utils.SecurityUtils; +import com.aps.core.domain.*; +import com.aps.core.mapper.ApsMaterialStorageManagementMapper; +import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPlateStandardRequireBomStockDetailMapper; -import com.aps.core.domain.ApsPlateStandardRequireBomStockDetail; import com.aps.core.service.IApsPlateStandardRequireBomStockDetailService; /** @@ -19,7 +25,11 @@ { @Autowired private ApsPlateStandardRequireBomStockDetailMapper apsPlateStandardRequireBomStockDetailMapper; + @Resource + ApsMaterialStorageManagementMapper itemStorageMapper; + @Resource + ApsPlateStandardRequireBomStockDetailMapper plateBomStockDetailMapper; /** * 鏌ヨApsPlateStandardRequireBomStockDetail * @@ -93,4 +103,33 @@ { return apsPlateStandardRequireBomStockDetailMapper.deleteApsPlateStandardRequireBomStockDetailById(id); } + + + /** + * 璁$畻鐗╂枡鍓╀綑搴撳瓨 骞朵繚瀛樼墿鏂欏墿浣欏簱瀛樻槑缁嗐�� + * */ + @Override + public void saveStorageAndDetail(ApsMaterialStorageManagement itemStorage, ApsPlatePlan plan, ApsBom bomLine, String batchNum, BigDecimal deductionAmount, BigDecimal afterStockAmount){ + /*鏇存柊鐗╂枡鍓╀綑搴撳瓨*/ + itemStorageMapper.updateMaterialStorageByVersion(afterStockAmount,itemStorage.getVersion()); + /*璁板綍鎵e噺鏄庣粏*/ + ApsPlateStandardRequireBomStockDetail bomStockDetail = ApsPlateStandardRequireBomStockDetail.builder() + .id(IdUtil.getSnowflakeNextId()) + .requireId(plan.getRequireId()) + .bomLineId(bomLine.getBomLineId()) + .bomLineCode(bomLine.getItemCode()) + .beforeStockAmount(itemStorage.getRemainderStock()) + .deductionAmount(deductionAmount) + .afterStockAmount(afterStockAmount) + .batchNumber(batchNum) + .orgCode(itemStorage.getApplicableFactories()) + .delFlag("0") + .build(); + bomStockDetail.setCreateBy(SecurityUtils.getUsername()); + bomStockDetail.setCreateTime(DateUtils.getNowDate()); + + plateBomStockDetailMapper.insertApsPlateStandardRequireBomStockDetail(bomStockDetail); + + } + } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireErrorServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireErrorServiceImpl.java new file mode 100644 index 0000000..930cfe5 --- /dev/null +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireErrorServiceImpl.java @@ -0,0 +1,96 @@ +package com.aps.core.service.impl; + +import java.util.List; +import com.aps.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.aps.core.mapper.ApsPlateStandardRequireErrorMapper; +import com.aps.core.domain.ApsPlateStandardRequireError; +import com.aps.core.service.IApsPlateStandardRequireErrorService; + +/** + * 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭疭ervice涓氬姟灞傚鐞� + * + * @author zhl + * @date 2025-05-08 + */ +@Service +public class ApsPlateStandardRequireErrorServiceImpl implements IApsPlateStandardRequireErrorService +{ + @Autowired + private ApsPlateStandardRequireErrorMapper apsPlateStandardRequireErrorMapper; + + /** + * 鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param id 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭富閿� + * @return 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + */ + @Override + public ApsPlateStandardRequireError selectApsPlateStandardRequireErrorById(Long id) + { + return apsPlateStandardRequireErrorMapper.selectApsPlateStandardRequireErrorById(id); + } + + /** + * 鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + */ + @Override + public List<ApsPlateStandardRequireError> selectApsPlateStandardRequireErrorList(ApsPlateStandardRequireError apsPlateStandardRequireError) + { + return apsPlateStandardRequireErrorMapper.selectApsPlateStandardRequireErrorList(apsPlateStandardRequireError); + } + + /** + * 鏂板閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 缁撴灉 + */ + @Override + public int insertApsPlateStandardRequireError(ApsPlateStandardRequireError apsPlateStandardRequireError) + { + apsPlateStandardRequireError.setCreateTime(DateUtils.getNowDate()); + return apsPlateStandardRequireErrorMapper.insertApsPlateStandardRequireError(apsPlateStandardRequireError); + } + + /** + * 淇敼閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param apsPlateStandardRequireError 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * @return 缁撴灉 + */ + @Override + public int updateApsPlateStandardRequireError(ApsPlateStandardRequireError apsPlateStandardRequireError) + { + apsPlateStandardRequireError.setUpdateTime(DateUtils.getNowDate()); + return apsPlateStandardRequireErrorMapper.updateApsPlateStandardRequireError(apsPlateStandardRequireError); + } + + /** + * 鎵归噺鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� + * + * @param ids 闇�瑕佸垹闄ょ殑閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭富閿� + * @return 缁撴灉 + */ + @Override + public int deleteApsPlateStandardRequireErrorByIds(Long[] ids) + { + return apsPlateStandardRequireErrorMapper.deleteApsPlateStandardRequireErrorByIds(ids); + } + + /** + * 鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭俊鎭� + * + * @param id 閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭富閿� + * @return 缁撴灉 + */ + @Override + public int deleteApsPlateStandardRequireErrorById(Long id) + { + return apsPlateStandardRequireErrorMapper.deleteApsPlateStandardRequireErrorById(id); + } +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java index b6da4b1..3f889a0 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java @@ -1,11 +1,24 @@ package com.aps.core.service.impl; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Optional; + +import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; +import com.aps.common.security.utils.DictUtils; +import com.aps.common.security.utils.SecurityUtils; +import com.aps.core.domain.*; +import com.aps.core.mapper.*; +import com.aps.core.service.IApsBomService; +import com.aps.core.service.IApsPlateStandardRequireBomOrderDetailService; +import com.aps.core.service.IApsPlateStandardRequireBomStockDetailService; +import com.aps.system.api.domain.SysDictData; +import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.aps.core.mapper.ApsPlateStandardRequireMapper; -import com.aps.core.domain.ApsPlateStandardRequire; import com.aps.core.service.IApsPlateStandardRequireService; /** @@ -19,6 +32,41 @@ { @Autowired private ApsPlateStandardRequireMapper apsPlateStandardRequireMapper; + + @Resource + private ApsPlateStandardRequireBatchMapper requireBatchMapper; + + @Resource + ApsPlatePlanMapper platePlanMapper; + + @Resource + ApsBomHeaderMapper bomHeaderMapper; + @Resource + IApsBomService bomLineService; + + @Resource + ApsMaterialStorageManagementMapper itemStorageMapper; + + @Resource + ApsPlateStandardRequireBomStockDetailMapper plateBomStockDetailMapper; + + @Resource + IApsPlateStandardRequireBomStockDetailService bomStockDetailService; + @Resource + ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper; + + @Resource + ApsStandardProcessRouteLineMapper ApsStandardProcessRouteLineMapper; + + @Resource + ApsPlateStandardRequireBomOrderDetailMapper plateBomOrderDetailMapper; + + @Autowired + private ApsPlatePlanMapper apsPlatePlanMapper; + + @Resource + IApsPlateStandardRequireBomOrderDetailService bomOrderDetailService; + /** * 鏌ヨ閽i噾宸ュ崟鏍囧噯闇�姹� @@ -93,4 +141,227 @@ { return apsPlateStandardRequireMapper.deleteApsPlateStandardRequireById(id); } + + private void generatorPlan(){ + + /*瀹氫箟宸ュ巶涓哄崡閫� */ + String plantCode="FORTUNA"; + /*瀹氫箟涓诲崟绫诲瀷涓洪挘閲戜富鍗�*/ + String mainOrderType = "閽i噾涓讳欢"; + /*瀹氫箟瀛愬崟绫诲瀷涓洪挘閲戝瓙鍗�*/ + String subOrderType = "閽i噾瀛愪欢"; + /*鐢熸垚鏂版壒娆″彿*/ + String batchNum=getBatch(); + /*鑾峰彇閽i噾涓诲崟淇℃伅*/ + List<ApsPlatePlan> mainPlans = platePlanMapper.selectPlatePlanByPlantMajor(plantCode,mainOrderType); + List<ApsPlateStandardRequire> requiresList=new ArrayList<>(); + for (ApsPlatePlan mainPlan : mainPlans) { + String itemNumber = mainPlan.getItemNumber(); + /*鏍规嵁鏂欏彿 鑾峰彇BOM Header */ + } + + + + } + private void getBomRequires(String plant, ApsBom bomLine, String batchNum, Date upLevelStartDate, ApsPlatePlan plan, List<ApsPlateStandardRequire> allRequires, Long level){ + + String itemNumber = bomLine.getItemCode(); + String productivityModel_combined_batch="鍚堟壒"; + String productivityModel_monopolize="鐙崰"; + Optional<ApsStandardProcessRouteHeader> firstProcessRoute = standardProcessRouteHeaderMapper.queryStandardProcessRouteHeaderByPlantAndItemCode(plant, itemNumber).stream().findFirst(); + if (firstProcessRoute.isPresent()) { + /*鑾峰彇宸ヨ壓璺嚎Header淇℃伅*/ + ApsStandardProcessRouteHeader routeHeader = firstProcessRoute.get(); + /*鏋勫缓闇�姹備俊鎭�*/ + ApsPlateStandardRequire require = new ApsPlateStandardRequire(); + require.setId(IdUtil.getSnowflakeNextId()); + require.setRequireId(plan.getId()); + require.setBatchNumber(batchNum); + require.setOrgCode(plant); + require.setBomLineCode(itemNumber); + require.setBomLineLevel(level); + require.setBomUseAmount(bomLine.getNum()); + require.setCreateTime(DateUtils.getNowDate()); + require.setCreateBy(SecurityUtils.getUsername()); + /*璁$畻闇�姹傛暟閲�*/ + if (level == 0) { + require.setBomUseAmount(BigDecimal.ONE); + require.setCompleteDate(plan.getPlanEndDay()); + require.setDemandDate(plan.getPlanEndDay()); + } else { + require.setBomUseAmount(bomLine.getNum().multiply(plan.getProductionQuantity())); + } + /*鏌ユ壘搴撳瓨锛岃绠楀噣闇�姹傦紝淇濆瓨鍓╀綑搴撳瓨锛屼繚瀛樺簱瀛樻墸鍑忔槑缁�*/ + BigDecimal remainderStock = BigDecimal.ZERO; + Optional<ApsMaterialStorageManagement> itemStorage = getItemStorage(plant, itemNumber); + if (itemStorage.isPresent()) { + ApsMaterialStorageManagement storage = itemStorage.get(); + /*鍓╀綑搴撳瓨*/ + remainderStock = storage.getRemainderStock(); + /*璁$畻鍑�闇�姹� 榛樿=闇�姹傛暟閲�*/ + if (remainderStock.compareTo(BigDecimal.ZERO) == 0) { + require.setNetRequirement(require.getBomUseAmount()); + } + if (remainderStock.compareTo(BigDecimal.ZERO) > 0) { + BigDecimal subtract = require.getBomUseAmount().subtract(remainderStock); + BigDecimal deductionAmount = BigDecimal.ZERO; + BigDecimal afterStockAmount = BigDecimal.ZERO; + if (subtract.compareTo(BigDecimal.ZERO) >= 0) { + deductionAmount = remainderStock; + afterStockAmount = BigDecimal.ZERO; + require.setNetRequirement(subtract); + } else { + deductionAmount = require.getBomUseAmount(); + afterStockAmount = remainderStock.subtract(deductionAmount); + require.setNetRequirement(BigDecimal.ZERO); + } + bomStockDetailService.saveStorageAndDetail(storage, plan, bomLine, batchNum, deductionAmount, afterStockAmount); + } + } + /*鍑�闇�姹�*/ + BigDecimal netRequirement = require.getNetRequirement(); + /*宸ヨ壓璺嚎鎬婚渶姹�*/ + BigDecimal totalRouteTime = getRouteLineTotalTime(routeHeader, productivityModel_monopolize, netRequirement); + long millisecond = 60*60*1000L; + long totalRouteMillisecond = totalRouteTime.multiply(BigDecimal.valueOf(millisecond)).longValue(); + /*瀹屾垚鏃堕棿锛宭evel=0 鏃堕粯璁や负宸ュ崟鐨勮鍒掑畬鎴愭棩鏈�*/ + Date completeDate= plan.getPlanEndDay(); + /*棰勭暀澶╂暟*/ + Long reservedDay = getReservedDays(); + if(level>0){ + /* 褰撳墠闇�姹傚畬鎴愭棩鏈熶负涓婇樁灞傞渶姹傜殑寮�濮嬫椂闂� - 棰勭暀澶╂暟(杞崲涓烘绉�)*/ + long reservedMillisecond = reservedDay *24* millisecond; + completeDate.setTime(upLevelStartDate.getTime()-reservedMillisecond); + } + /*璁剧疆瀹屾垚鏃ユ湡*/ + require.setCompleteDate(completeDate); + require.setDemandDate(require.getCompleteDate()); + /*璁剧疆寮�濮嬫椂闂�*/ + Date startDay = new Date(); + startDay.setTime(completeDate.getTime() - totalRouteMillisecond); + require.setStartDate(startDay); + require.setMatchState("宸插尮閰�"); + require.setMatchMode("搴撳瓨鍖归厤"); + if(require.getNetRequirement().compareTo(BigDecimal.ZERO)>0){ + require.setMatchState("寰呭尮閰�"); + require.setMatchMode("宸ュ崟鍖归厤"); + } + require.setHasDelayRisk("鏃犻闄�"); + + allRequires.add(require); + /*褰撳墠Bom鑺傜偣澶勭悊瀹屾垚鍚庯紝澶勭悊涓嬬骇BOM*/ + List<ApsBom> bomLineList = bomLineService.selectApsBomLineList(plant, itemNumber); + if(!bomLineList.isEmpty()){ + bomLineList.forEach(line -> { + getBomRequires(plant, line, batchNum, require.getStartDate(), plan, allRequires, level+1); + }); + } + + } else { + throw new RuntimeException("鏈壘鍒版爣鍑嗗伐鑹鸿矾绾�"); + } + } + + private BigDecimal getRouteLineTotalTime(ApsStandardProcessRouteHeader routeHeader, String productivityModel_monopolize, BigDecimal netRequirement) { + ApsStandardProcessRouteLine routeLineParam = ApsStandardProcessRouteLine.builder() + .routeId(routeHeader.getRouteId()) + .build(); + List<ApsStandardProcessRouteLine> apsStandardProcessRouteLines = ApsStandardProcessRouteLineMapper.selectApsStandardProcessRouteLineList(routeLineParam); + /*宸ヨ壓璺嚎Line 鎬诲伐鏃�*/ + BigDecimal totalRouteTime = BigDecimal.ZERO; + apsStandardProcessRouteLines.forEach(line -> { + line.setRouteTime(line.getDesignCapacity()); + if (line.getProductivityModel().equals(productivityModel_monopolize)) { + line.setRouteTime(line.getDesignCapacity().multiply(netRequirement)); + } + totalRouteTime.add(line.getRouteTime()); + }); + return totalRouteTime; + } + + /** + * 鐢熸垚鏂版壒娆″彿 + * */ + private String getBatch() { + String batchNum = System.currentTimeMillis() + ""; + ApsPlateStandardRequireBatch batchBuilder = ApsPlateStandardRequireBatch.builder() + .id(IdUtil.getSnowflakeNextId()) + .batchNumber(batchNum) + .delFlag("0").build(); + batchBuilder.setCreateBy(SecurityUtils.getUsername()); + batchBuilder.setCreateTime(DateUtils.getNowDate()); + requireBatchMapper.insertApsPlateStandardRequireBatch(batchBuilder); + return batchNum; + } + /** + * 鑾峰彇鐗╂枡搴撳瓨淇℃伅 + * */ + private Optional<ApsMaterialStorageManagement> getItemStorage(String plant, String itemNumber) { + ApsMaterialStorageManagement storageParam = new ApsMaterialStorageManagement(); + storageParam.setItemNumber(itemNumber); + storageParam.setApplicableFactories(plant); + Optional<ApsMaterialStorageManagement> firstStorage = itemStorageMapper.selectApsMaterialStorageManagementList(storageParam).stream() + .findFirst(); + + return firstStorage; + } + + /** + * 鑾峰彇閽i噾璁″垝 棰勭暀澶╂暟 + * */ + private Long getReservedDays(){ + Long days=0L; + List<SysDictData> dictDataList = DictUtils.getDictCache("aps_is_suspended"); + if (dictDataList != null) { + Long.getLong(dictDataList.get(0).getDictValue()); + } + return days; + } + + /** + * 浣跨敤瀛愪欢宸ュ崟鍖归厤闇�姹備腑鐨勫噣闇�姹� + * */ + private void matchRequireAndSubPlan(ApsPlateStandardRequire require) { + BigDecimal netRequirement = require.getNetRequirement(); + if (netRequirement.compareTo(BigDecimal.ZERO) > 0) { + ApsPlatePlan platePlan = apsPlatePlanMapper.selectUnMatchPlateSubPlan(require.getOrgCode()); + /*瀛愪欢宸ュ崟鐨勬湭鍖归厤鏁伴噺 浣滀负褰撳墠鐨勫簱瀛�*/ + BigDecimal stock = platePlan.getUnmatchedQuantity(); + if (netRequirement.compareTo(stock) < 0) { + /* 搴撳瓨鏁伴噺 澶т簬 鍑�闇�姹傛暟閲�*/ + /* 鍑�闇�姹傛暟閲�=0 锛屽瓙浠跺伐鍗曟湭鍖归厤鏁伴噺= 搴撳瓨-鍑�闇�姹�*/ + netRequirement = BigDecimal.ZERO; + require.setNetRequirement(netRequirement); + BigDecimal subtract = stock.subtract(netRequirement); + bomOrderDetailService.savePlastPlanAndBomOrderDetail(require, platePlan, subtract, stock, netRequirement); + /*鍑�闇�姹傚凡缁忚婊¤冻锛屼笉闇�瑕佺户缁尮閰�*/ + + } else if (netRequirement.compareTo(stock) == 0) { + /*鍑�闇�姹傛暟閲� == 搴撳瓨鏁伴噺*/ + netRequirement = BigDecimal.ZERO; + require.setNetRequirement(netRequirement); + BigDecimal subtract = BigDecimal.ZERO; + bomOrderDetailService.savePlastPlanAndBomOrderDetail(require, platePlan, subtract, stock, netRequirement); + /*鍑�闇�姹傚凡缁忚婊¤冻锛屼笉闇�瑕佺户缁尮閰�*/ + } + if (netRequirement.compareTo(stock) > 0) { + while (platePlan != null && netRequirement.compareTo(BigDecimal.ZERO) > 0) { + /*闇�姹傚ぇ浜庡簱瀛�*/ + /*鍑�闇�姹� 琚儴鍒嗘弧瓒� */ + BigDecimal rest = netRequirement.subtract(stock); + require.setNetRequirement(rest); + require.setMatchState("鍖归厤涓�"); + /*宸ュ崟 鏈尮閰嶆暟閲忎负0 鍏ㄩ儴鐢ㄤ簬鍖归厤闇�姹�*/ + bomOrderDetailService.savePlastPlanAndBomOrderDetail(require, platePlan, BigDecimal.ZERO, stock, netRequirement); + /*鍑�闇�姹傛湭琚弧瓒筹紝闇�瑕佺户缁尮閰�*/ + platePlan = apsPlatePlanMapper.selectUnMatchPlateSubPlan(require.getOrgCode()); + netRequirement = rest; + } + } + + } + } + + + } diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml index 35da42e..56269ce 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml @@ -137,4 +137,25 @@ #{id} </foreach> </delete> + + <resultMap type="ApsBom" id="ApsBomLineResult"> + <result property="bomLineId" column="bom_line_id" /> + <result property="itemCode" column="item_code" /> + <result property="itemName" column="item_name" /> + <result property="num" column="num" /> + </resultMap> + <sql id="selectApsBomLineVo"> + select bom_line_id, item_code, item_name, num + from aps_bom_line + </sql> + + <select id="selectApsBomLineList" parameterType="ApsBom" resultMap="ApsBomLineResult"> + <include refid="selectApsBomLineVo"/> + <where> + <if test="bomHeaderId != null and bomHeaderId != ''"> and bom_header_id = #{bomHeaderId}</if> + <if test="orgCode != null and orgCode != ''"> and org_code = #{orgCode}</if> + and del_flag='0' + </where> + order by bom_header_id,bom_line_id + </select> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml index 02347ca..747cd2a 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml @@ -15,16 +15,22 @@ <result property="createTime" column="create_time" /> <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> + <result property="version" column="version" /> + <result property="remainderStock" column="remainder_stock" /> + </resultMap> <sql id="selectApsMaterialStorageManagementVo"> - select id, item_number, num, applicable_factories, integration_date, refresh_date, create_by, create_time, update_by, update_time from aps_material_storage_management + select id, item_number, num, applicable_factories, integration_date, refresh_date, create_by, + create_time, update_by, update_time ,remainderStock,version + from aps_material_storage_management </sql> <select id="selectApsMaterialStorageManagementList" parameterType="ApsMaterialStorageManagement" resultMap="ApsMaterialStorageManagementResult"> <include refid="selectApsMaterialStorageManagementVo"/> <where> <if test="itemNumber != null and itemNumber != ''"> and item_number = #{itemNumber}</if> + <if test="applicableFactories != null and applicableFactories != ''"> and applicable_factories = #{applicableFactories}</if> </where> </select> @@ -87,4 +93,9 @@ #{id} </foreach> </delete> + <update id="updateMaterialStorageByVersion" parameterType="ApsMaterialStorageManagement"> + update aps_material_storage_management + set remainder_stock=#{remainderStock},version=version+1 + where id=#{id} and version=#{version} + </update> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartPlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartPlanMapper.xml index 7384204..4db91eb 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartPlanMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartPlanMapper.xml @@ -43,10 +43,24 @@ <result property="stdOp" column="std_op" /> <result property="opStatus" column="op_status" /> <result property="nextOpName" column="next_op_name" /> + <result property="plant" column="plant" /> + <result property="unmatchedQuantity" column="unmatched_quantity" /> + <result property="professionalAffiliation" column="professional_affiliation" /> + <result property="requireId" column="require_id" /> + <result property="version" column="version" /> + </resultMap> <sql id="selectApsPartPlanVo"> - select id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, customer, business_type, document_number, requirement_type, document_status, item_number, drawing_no, version_number, production_quantity, good_products_quantity, process_number, work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, standby_stock, next_process_deparment, is_suspended, is_outsourcing, account, advanced_materials, advanced_document_number, advanced_requirement_day, is_plan_complete, is_stock_complete, has_turnback, has_risk, std_op, op_status, next_op_name from aps_part_plan + select id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, + customer, business_type, document_number, requirement_type, document_status, item_number, + drawing_no, version_number, production_quantity, good_products_quantity, process_number, + work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, standby_stock, + next_process_deparment, is_suspended, is_outsourcing, account, advanced_materials, + advanced_document_number, advanced_requirement_day, is_plan_complete, is_stock_complete, + has_turnback, has_risk, std_op, op_status, next_op_name , + plant, unmatched_quantity, professional_affiliation, require_id, version, unmatchedQuantity + from aps_part_plan </sql> <select id="selectApsPartPlanList" parameterType="com.aps.core.domain.ApsPartPlan" resultMap="ApsPartPlanResult"> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml index 5bf67f2..84ab2b7 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml @@ -44,6 +44,8 @@ <result property="opStatus" column="op_status" /> <result property="nextOpName" column="next_op_name" /> <result property="unmatchedQuantity" column="unmatched_quantity" /> + <result property="professionalAffiliation" column="professional_affiliation" /> + <result property="requireId" column="require_id" /> </resultMap> <sql id="selectApsPlatePlanVo"> @@ -53,7 +55,7 @@ work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, standby_stock, next_process_deparment, is_suspended, is_outsourcing, account, advanced_materials, advanced_document_number, advanced_requirement_day, is_plan_complete, is_stock_complete, - has_turnback, has_risk, std_op, op_status, next_op_name ,unmatched_quantity + has_turnback, has_risk, std_op, op_status, next_op_name ,unmatched_quantity,professional_affiliation from aps_plate_plan </sql> @@ -263,4 +265,31 @@ update aps_plate_plan set del_flag='1' where del_flag ='0' </update> + <select id="selectPlatePlanByPlantMajor" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult"> + select id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,require_id + from aps_plate_plan + <where> + <if test="plant != null "> and plant = #{plant}</if> + <if test="professionalAffiliation != null "> and professional_affiliation = #{professionalAffiliation}</if> + and del_flag='0' + </where> + order by document_number asc,id asc + </select> + + <select id="selectUnMatchPlateSubPlan" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult"> + select id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity, + ,unmatched_quantity + from aps_plate_plan + where del_flag='0' and professional_affiliation !='0' and unmatched_quantity > 0 + <if test="plant != null and plan !='' "> and plant = #{plant}</if> + order by document_number asc,id asc + limit 1 + </select> + + + <update id="updatePlanUnMatchQtyByVersion" parameterType="ApsPlatePlan"> + update aps_plate_plan + set unmatched_quantity=#{unmatched_quantity},version=version+1 + where id=#{id} and version=#{version} + </update> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml new file mode 100644 index 0000000..3899980 --- /dev/null +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml @@ -0,0 +1,103 @@ +<?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.aps.core.mapper.ApsPlateStandardRequireErrorMapper"> + + <resultMap type="ApsPlateStandardRequireError" id="ApsPlateStandardRequireErrorResult"> + <result property="id" column="id" /> + <result property="batchNumber" column="batch_number" /> + <result property="requireId" column="require_id" /> + <result property="docNum" column="doc_num" /> + <result property="itemNum" column="item_num" /> + <result property="orgCode" column="org_code" /> + <result property="message" column="message" /> + <result property="delFlag" column="del_flag" /> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="updateBy" column="update_by" /> + <result property="updateTime" column="update_time" /> + </resultMap> + + <sql id="selectApsPlateStandardRequireErrorVo"> + select id, batch_number, require_id, doc_num, item_num, org_code, message, del_flag, create_by, create_time, update_by, update_time from aps_plate_standard_require_error + </sql> + + <select id="selectApsPlateStandardRequireErrorList" parameterType="ApsPlateStandardRequireError" resultMap="ApsPlateStandardRequireErrorResult"> + <include refid="selectApsPlateStandardRequireErrorVo"/> + <where> + <if test="batchNumber != null and batchNumber != ''"> and batch_number = #{batchNumber}</if> + <if test="requireId != null and requireId != ''"> and require_id = #{requireId}</if> + <if test="docNum != null and docNum != ''"> and doc_num = #{docNum}</if> + <if test="itemNum != null and itemNum != ''"> and item_num = #{itemNum}</if> + <if test="orgCode != null and orgCode != ''"> and org_code = #{orgCode}</if> + <if test="message != null and message != ''"> and message = #{message}</if> + </where> + </select> + + <select id="selectApsPlateStandardRequireErrorById" parameterType="Long" resultMap="ApsPlateStandardRequireErrorResult"> + <include refid="selectApsPlateStandardRequireErrorVo"/> + where id = #{id} + </select> + + <insert id="insertApsPlateStandardRequireError" parameterType="ApsPlateStandardRequireError"> + insert into aps_plate_standard_require_error + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null">id,</if> + <if test="batchNumber != null">batch_number,</if> + <if test="requireId != null">require_id,</if> + <if test="docNum != null">doc_num,</if> + <if test="itemNum != null">item_num,</if> + <if test="orgCode != null">org_code,</if> + <if test="message != null">message,</if> + <if test="delFlag != null">del_flag,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="updateBy != null">update_by,</if> + <if test="updateTime != null">update_time,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null">#{id},</if> + <if test="batchNumber != null">#{batchNumber},</if> + <if test="requireId != null">#{requireId},</if> + <if test="docNum != null">#{docNum},</if> + <if test="itemNum != null">#{itemNum},</if> + <if test="orgCode != null">#{orgCode},</if> + <if test="message != null">#{message},</if> + <if test="delFlag != null">#{delFlag},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateBy != null">#{updateBy},</if> + <if test="updateTime != null">#{updateTime},</if> + </trim> + </insert> + + <update id="updateApsPlateStandardRequireError" parameterType="ApsPlateStandardRequireError"> + update aps_plate_standard_require_error + <trim prefix="SET" suffixOverrides=","> + <if test="batchNumber != null">batch_number = #{batchNumber},</if> + <if test="requireId != null">require_id = #{requireId},</if> + <if test="docNum != null">doc_num = #{docNum},</if> + <if test="itemNum != null">item_num = #{itemNum},</if> + <if test="orgCode != null">org_code = #{orgCode},</if> + <if test="message != null">message = #{message},</if> + <if test="delFlag != null">del_flag = #{delFlag},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="updateBy != null">update_by = #{updateBy},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteApsPlateStandardRequireErrorById" parameterType="Long"> + delete from aps_plate_standard_require_error where id = #{id} + </delete> + + <delete id="deleteApsPlateStandardRequireErrorByIds" parameterType="String"> + delete from aps_plate_standard_require_error where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml index 8ba123e..7b152eb 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml @@ -22,7 +22,9 @@ </resultMap> <sql id="selectApsStandardProcessRouteHeaderVo"> - select id, route_id, version, start_date, end_date, org_code, del_flag, create_by, create_time, update_by, update_time, item_code, drawing_number, process_all_time from aps_standard_process_route_header + select id, route_id, version, start_date, end_date, org_code, del_flag, create_by, + create_time, update_by, update_time, item_code, drawing_number, process_all_time + from aps_standard_process_route_header </sql> <select id="selectApsStandardProcessRouteHeaderList" parameterType="ApsStandardProcessRouteHeader" resultMap="ApsStandardProcessRouteHeaderResult"> @@ -101,4 +103,13 @@ #{id} </foreach> </delete> + + <select id="queryStandardProcessRouteHeaderByPlantAndItemCode" parameterType="String" resultMap="ApsStandardProcessRouteHeaderResult"> + <include refid="selectApsStandardProcessRouteHeaderVo"/> + <where> + <if test="orgCode != null and orgCode != ''"> and org_code = #{orgCode}</if> + <if test="itemCode != null and itemCode != ''"> and item_code = #{itemCode} </if> + and del_flag = '0' + </where> + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3