diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/external/MaterialController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/external/MaterialController.java index a338cf4e..45d206e8 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/external/MaterialController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/external/MaterialController.java @@ -3,17 +3,18 @@ package com.nflg.qms.admin.controller.external; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.qo.ExemptMaterialCheckQO; import com.nflg.wms.common.pojo.vo.ExemptMaterialCheckVO; +import com.nflg.wms.common.pojo.vo.MaterialInspectionCycleVO; +import com.nflg.wms.repository.entity.QmsQcMaterial; import com.nflg.wms.repository.service.IQmsExemptCategoryService; import com.nflg.wms.repository.service.IQmsExemptMaterialService; +import com.nflg.wms.repository.service.IQmsQcMaterialService; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; +import org.checkerframework.common.reflection.qual.GetClass; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Set; @@ -34,6 +35,9 @@ public class MaterialController extends BaseController { @Resource private IQmsExemptCategoryService exemptCategoryService; + @Resource + private IQmsQcMaterialService qcMaterialService; + /** * 批量判断物料是否免检 * - 参数为供应商编号和物料编号的组合列表 @@ -69,4 +73,19 @@ public class MaterialController extends BaseController { return ApiResult.success(result); } + + /** + * 获取物料质检周期 + */ + @GetMapping("getMaterialInspectionCycle") + public ApiResult> getMaterialInspectionCycle() { + return ApiResult.success( + qcMaterialService.lambdaQuery() + .select(QmsQcMaterial::getMaterialNo, QmsQcMaterial::getInspectionCycle1, QmsQcMaterial::getInspectionCycle2, QmsQcMaterial::getInspectionCycle3) + .list() + .stream() + .map(qcMaterial -> new MaterialInspectionCycleVO(qcMaterial.getMaterialNo(), qcMaterial.getInspectionCycle1(), qcMaterial.getInspectionCycle2(), qcMaterial.getInspectionCycle3())) + .toList() + ); + } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsQcMaterialControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsQcMaterialControllerService.java index ad0299ee..b40f096f 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsQcMaterialControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsQcMaterialControllerService.java @@ -163,6 +163,9 @@ public class QmsQcMaterialControllerService { .setMaterialSpecifications(request.getMaterialSpecifications()) .setValidityPeriod(request.getValidityPeriod()) .setIsStandardMaintained(request.getIsStandardMaintained() != null ? request.getIsStandardMaintained() : false) + .setInspectionCycle1(request.getInspectionCycle1()) + .setInspectionCycle2(request.getInspectionCycle2()) + .setInspectionCycle3(request.getInspectionCycle3()) .setCreatedType(0) .setCreateBy(userId) .setCreateByName(operator) @@ -247,6 +250,9 @@ public class QmsQcMaterialControllerService { .set(QmsQcMaterial::getUpdateBy, userId) .set(QmsQcMaterial::getUpdateByName, operator) .set(QmsQcMaterial::getUpdateTime, now) + .set(QmsQcMaterial::getInspectionCycle1, request.getInspectionCycle1()) + .set(QmsQcMaterial::getInspectionCycle2, request.getInspectionCycle2()) + .set(QmsQcMaterial::getInspectionCycle3, request.getInspectionCycle3()) .update(); } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalInventoryInspectionApplyQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalInventoryInspectionApplyQO.java index 988e9bfa..cf3a02c3 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalInventoryInspectionApplyQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/ExternalInventoryInspectionApplyQO.java @@ -47,7 +47,6 @@ public class ExternalInventoryInspectionApplyQO { /** * 所属储位(必填) */ - @NotBlank(message = "所属储位不能为空") private String storageLocation; /** diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsQcMaterialAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsQcMaterialAddQO.java index 1514decc..5618bde8 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsQcMaterialAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsQcMaterialAddQO.java @@ -1,6 +1,7 @@ package com.nflg.wms.common.pojo.qo; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; /** @@ -65,4 +66,22 @@ public class QmsQcMaterialAddQO { * 规则是否已维护:false=未维护,true=已维护 */ private Boolean isStandardMaintained; + + /** + * 质检周期1(单位为月) + */ + @NotNull(message = "质检周期1不能为空") + private Integer inspectionCycle1; + + /** + * 质检周期2(单位为月) + */ + @NotNull(message = "质检周期2不能为空") + private Integer inspectionCycle2; + + /** + * 质检周期3(单位为月) + */ + @NotNull(message = "质检周期3不能为空") + private Integer inspectionCycle3; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsQcMaterialUpdateQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsQcMaterialUpdateQO.java index 3273912e..c1c92019 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsQcMaterialUpdateQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsQcMaterialUpdateQO.java @@ -70,4 +70,22 @@ public class QmsQcMaterialUpdateQO { * 规则是否已维护:false=未维护,true=已维护 */ private Boolean isStandardMaintained; + + /** + * 质检周期1(单位为月) + */ + @NotNull(message = "质检周期1不能为空") + private Integer inspectionCycle1; + + /** + * 质检周期2(单位为月) + */ + @NotNull(message = "质检周期2不能为空") + private Integer inspectionCycle2; + + /** + * 质检周期3(单位为月) + */ + @NotNull(message = "质检周期3不能为空") + private Integer inspectionCycle3; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MaterialInspectionCycleVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MaterialInspectionCycleVO.java new file mode 100644 index 00000000..976fe444 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MaterialInspectionCycleVO.java @@ -0,0 +1,32 @@ +package com.nflg.wms.common.pojo.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MaterialInspectionCycleVO { + + /** + * 物料编号 + */ + private String materialNo; + + /** + * 质检周期1(单位为月) + */ + private Integer inspectionCycle1; + + /** + * 质检周期2(单位为月) + */ + private Integer inspectionCycle2; + + /** + * 质检周期3(单位为月) + */ + private Integer inspectionCycle3; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsQcMaterial.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsQcMaterial.java index d7808ead..1b93244a 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsQcMaterial.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsQcMaterial.java @@ -125,4 +125,19 @@ public class QmsQcMaterial implements Serializable { * 修改人名称 */ private String updateByName; + + /** + * 质检周期1(单位为月) + */ + private Integer inspectionCycle1; + + /** + * 质检周期2(单位为月) + */ + private Integer inspectionCycle2; + + /** + * 质检周期3(单位为月) + */ + private Integer inspectionCycle3; } diff --git a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/QmsService.java b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/QmsService.java new file mode 100644 index 00000000..3840424d --- /dev/null +++ b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/QmsService.java @@ -0,0 +1,65 @@ +package com.nflg.wms.scheduled.service; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.nflg.wms.common.pojo.ApiResult; +import com.nflg.wms.common.pojo.qo.*; +import com.nflg.wms.common.pojo.vo.ExemptMaterialCheckVO; +import com.nflg.wms.common.pojo.vo.MaterialInspectionCycleVO; +import com.nflg.wms.common.util.VUtil; +import com.nflg.wms.repository.entity.WmsInProduceOrderItem; +import com.nflg.wms.repository.entity.WmsInventory; +import com.nflg.wms.repository.entity.WmsOutProduce; +import com.nflg.wms.repository.entity.WmsQrCodeMaster; +import com.nflg.wms.repository.service.IWmsInventoryService; +import com.nflg.wms.repository.service.IWmsOutProduceService; +import com.nflg.wms.repository.service.IWmsQrCodeMasterService; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.*; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; + +@Slf4j +@Component +public class QmsService { + + @Resource + private RestTemplate restTemplate; + + @Value("${qms.host}") + private String qmsHost; + + @Value("${qms.material.inspectionCycle.url}") + private String materialInspectionCycleUrl; + + /** + * 获取物料检测周期 + */ + public List getMaterialInspectionCycle(){ + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + HttpEntity requestEntity = new HttpEntity<>(headers); + + ResponseEntity>> response = restTemplate.exchange( + qmsHost + materialInspectionCycleUrl, + HttpMethod.POST, + requestEntity, + new ParameterizedTypeReference>>() { + } + ); + + VUtil.trueThrowBusinessError( + Objects.isNull(response.getBody()) || response.getBody().getCode() != 200 + ).throwMessage("查询物料质检周期失败:" + response.getBody().getMessage()); + return response.getBody().getResult(); + } +}