From 2d8eea3584a6c0e2b9932261fc22039d0d4cfd4d Mon Sep 17 00:00:00 2001 From: "DESKTOP-10680M4\\Admin" <155059952@qq.com> Date: Mon, 9 Mar 2026 14:00:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E8=AE=A2=E5=8D=95=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=95=80=E5=B1=82=E7=89=A9=E6=96=99=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E6=96=B9=E6=B3=95=20=20=20=20=E5=BC=80=E5=8F=91=E4=BA=BA?= =?UTF-8?q?=EF=BC=9A=E5=BC=A0=E9=AB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/mapper/CoatingThicknessMapper.java | 9 + .../basic/mapper/CoatingThicknessMapper.xml | 5 + .../basic/mapper/MaterialQuotaMapper.java | 8 + .../desk/basic/mapper/MaterialQuotaMapper.xml | 4 + .../service/ICoatingThicknessService.java | 9 + .../basic/service/IMaterialQuotaService.java | 8 + .../impl/CoatingThicknessServiceImpl.java | 11 ++ .../impl/MaterialQuotaServiceImpl.java | 11 ++ .../dashboard/mapper/BsPlatingMapper.java | 6 + .../desk/dashboard/mapper/CraftMapper.xml | 4 +- .../desk/dashboard/mapper/DsCraftMapper.java | 8 +- .../desk/dashboard/mapper/PlatingMapper.xml | 6 + .../dashboard/service/IBsPlatingService.java | 7 + .../dashboard/service/IDsCraftService.java | 8 + .../dashboard/service/IDsPartService.java | 7 + .../service/impl/BsPlatingServiceImpl.java | 9 + .../service/impl/DsCraftServiceImpl.java | 11 ++ .../service/impl/DsPartServiceImpl.java | 85 ++++---- .../PlateGoodsRecordController.java | 19 ++ .../service/IPlateGoodsRecordService.java | 7 + .../impl/PlateGoodsRecordServiceImpl.java | 185 +++++++++++++++++- 21 files changed, 387 insertions(+), 40 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CoatingThicknessMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CoatingThicknessMapper.java index 0f1d7da3..813f240b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CoatingThicknessMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CoatingThicknessMapper.java @@ -37,4 +37,13 @@ public interface CoatingThicknessMapper extends BaseMapper { * @return List */ List exportCoatingThickness(@Param("ew") Wrapper queryWrapper); + + /** + * 根据镀层代码、质量等级查询镀层厚度对应表 + * @param matCode + * @param productIdent + * @param start_f21e8 是否是21E8-210开头的零件号 + * @return + */ + CoatingThickness queryCoatingThickness(@Param("matCode") String matCode, @Param("productIdent") String productIdent, @Param("start_f21e8") int start_f21e8); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CoatingThicknessMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CoatingThicknessMapper.xml index 7545a49e..c4585e53 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CoatingThicknessMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CoatingThicknessMapper.xml @@ -20,4 +20,9 @@ + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/MaterialQuotaMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/MaterialQuotaMapper.java index 3be67637..b87f580a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/MaterialQuotaMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/MaterialQuotaMapper.java @@ -37,4 +37,12 @@ public interface MaterialQuotaMapper extends BaseMapper { * @return List */ List exportMaterialQuota(@Param("ew") Wrapper queryWrapper); + + /** + * 根据镀层厚度、工艺能力查询 + * @param thickness + * @param dsProcessId + * @return + */ + MaterialQuota queryMaterialQuota(@Param("thickness")Long thickness,@Param("dsProcessId") Long dsProcessId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/MaterialQuotaMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/MaterialQuotaMapper.xml index 6cbf0ca6..54579480 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/MaterialQuotaMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/MaterialQuotaMapper.xml @@ -22,4 +22,8 @@ + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICoatingThicknessService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICoatingThicknessService.java index 752edc04..9f93742f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICoatingThicknessService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICoatingThicknessService.java @@ -41,4 +41,13 @@ public interface ICoatingThicknessService extends BaseService * @param vo */ void setVOValue(CoatingThicknessVO vo); + + /** + * 根据镀层代码、质量等级查询镀层厚度对应表 + * @param matCode + * @param productIdent + * @param start_f21e8 是否是21E8-210开头的零件号 + * @return + */ + CoatingThickness queryCoatingThickness(String matCode,String productIdent,int start_f21e8); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IMaterialQuotaService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IMaterialQuotaService.java index 933e83db..103bc4ab 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IMaterialQuotaService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IMaterialQuotaService.java @@ -41,4 +41,12 @@ public interface IMaterialQuotaService extends BaseService { * @param vo */ void setVOValue(MaterialQuotaVO vo); + + /** + * 根据镀层厚度、工艺能力查询 + * @param thickness + * @param dsProcessId + * @return + */ + MaterialQuota queryMaterialQuota(Long thickness, Long dsProcessId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CoatingThicknessServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CoatingThicknessServiceImpl.java index ff336567..afc1877c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CoatingThicknessServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CoatingThicknessServiceImpl.java @@ -58,4 +58,15 @@ public class CoatingThicknessServiceImpl extends BaseServiceImpl { * @return */ BsPlatingEntity selectBsPlatingByPlate(@Param("plate")String plate); + /** + * 根据配置码查询镀种信息 + * @param configNo + * @return + */ + BsPlatingEntity selectBsPlatingConfigNo(@Param("configNo")String configNo); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml index 0c5060ff..f80740cf 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml @@ -79,6 +79,8 @@ and PART_ID = #{partId} and REWORK_ORDER = #{changeNo} - + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java index 5182e226..8498ebb8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java @@ -74,5 +74,11 @@ public interface DsCraftMapper extends BaseMapper { DsCraftEntity getPartCraft(@Param("partId")Long partId, @Param("rank")String rank); DsCraftEntity getReworkCraft(@Param("partId")Long partId,@Param("changeNo") String changeNo); - + /** + * 根据零件号、零件版本查询 + * @param partCode + * @param partVersion + * @return + */ + DsCraftEntity selectDsCraftByPartCodeAndVersion(@Param("partCode")Long partCode,@Param("partVersion")String partVersion); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PlatingMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PlatingMapper.xml index 91e431d5..a267b0e4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PlatingMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PlatingMapper.xml @@ -43,4 +43,10 @@ select * from BS_PLATING where PLATE= #{plate} and ROWNUM = 1 + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsPlatingService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsPlatingService.java index 51eee0e2..2599672a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsPlatingService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsPlatingService.java @@ -64,4 +64,11 @@ public interface IBsPlatingService extends BaseService { * @return */ BsPlatingEntity selectBsPlatingByPlate(String plate); + + /** + * 根据配置码查询镀种信息 + * @param configNo + * @return + */ + BsPlatingEntity selectBsPlatingConfigNo(String configNo); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java index 074e64d5..8103fd94 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java @@ -176,4 +176,12 @@ public interface IDsCraftService extends BaseService { * @return */ boolean craftBatchRemoval(String id); + + /** + * 根据零件号、零件版本查询 + * @param partCode + * @param partVersion + * @return + */ + DsCraftEntity selectDsCraftByPartCodeAndVersion(Long partCode,String partVersion); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java index 0267ab5e..bfc67620 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java @@ -213,4 +213,11 @@ public interface IDsPartService extends BaseService { // List getSimpleTree(String partCode); + /** + * 根据零件号查询零件 + * @param partCode + * @return + */ + DsPartEntity selectDsPartByPatCode(String partCode); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsPlatingServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsPlatingServiceImpl.java index 7a36641b..a242c476 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsPlatingServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsPlatingServiceImpl.java @@ -69,5 +69,14 @@ public class BsPlatingServiceImpl extends BaseServiceImpl selectDsPartPage(IPage page, DsPartVO dsPart) { List partIds = null; - if(null != dsPart.getProjectCode()){ + if (null != dsPart.getProjectCode()) { //查询工序项目 List processProjectEntities = processProjectService.selectDsProcessProjectByProcessCode(dsPart.getProjectCode()); - if(!CollectionUtils.isEmpty(processProjectEntities)){ + if (!CollectionUtils.isEmpty(processProjectEntities)) { List processIds = processProjectEntities.stream().map(DsProcessProjectEntity::getProcessId).collect(Collectors.toList()); //查询零件工艺工序信息 List processList = processService.selectDsProcessByIds(processIds); - if(!CollectionUtils.isEmpty(processList)){ + if (!CollectionUtils.isEmpty(processList)) { List craftIds = processList.stream().map(DsProcessEntity::getCraftId).collect(Collectors.toList()); List craftList = craftService.selectDsCraftByIds(craftIds); - if(!CollectionUtils.isEmpty(craftList)){ - partIds = craftList.stream().map(DsCraftEntity::getPartId).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(craftList)) { + partIds = craftList.stream().map(DsCraftEntity::getPartId).collect(Collectors.toList()); } } } } - if(null != partIds){ + if (null != partIds) { dsPart.setPartIds(partIds); } List dsPartVOS = baseMapper.selectDsPartPage(page, dsPart); - if(!CollectionUtils.isEmpty(dsPartVOS)){ + if (!CollectionUtils.isEmpty(dsPartVOS)) { for (DsPartVO dsPartVO : dsPartVOS) { dsPartVO.setUpdateUserStr(userClient.userInfo(Func.toLong(dsPartVO.getUpdateUser())).getData().getUser().getName()); String isSintering = dsPartVO.getIsSintering(); - if(TaskingConstant.IS_SINTERING.equals(isSintering)){ + if (TaskingConstant.IS_SINTERING.equals(isSintering)) { //查询子件信息 List partRelationEntityList = partRelationService.selectDsPartRelationByPartId(dsPartVO.getId()); //获取所有子件ID List idList = partRelationEntityList.stream().map(DsPartRelationEntity::getChildPartId).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(idList)){ + if (!CollectionUtils.isEmpty(idList)) { List dsPartEntityList = dsPartMapper.selectDsPartVersionByIds(idList); for (DsPartVersionVO dsPartVersionVO : dsPartEntityList) { dsPartVersionVO.setUpdateUserStr(userClient.userInfo(Func.toLong(dsPartVersionVO.getUpdateUser())).getData().getUser().getName()); @@ -149,9 +149,9 @@ public class DsPartServiceImpl extends BaseServiceImpl partVersionEntityList = partVersionService.selectByPartCode(partCode); Optional maxEntity = partVersionEntityList.stream() .filter(entity -> entity.getPartVersion() != null) @@ -164,15 +164,15 @@ public class DsPartServiceImpl extends BaseServiceImpl selectDsPartByPatCode(String partCode, Integer sinTerType) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(DsPartEntity.class) - .eq(DsPartEntity::getPartCode, partCode); + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(DsPartEntity.class) + .eq(DsPartEntity::getPartCode, partCode); if (Func.isNotEmpty(sinTerType)) { queryWrapper.eq(DsPartEntity::getSinTerType, sinTerType); @@ -194,7 +194,7 @@ public class DsPartServiceImpl extends BaseServiceImpl partList = dsPartMapper.selectPartByDate(startDate,endDate); + List partList = dsPartMapper.selectPartByDate(startDate, endDate); return true; @@ -208,7 +208,7 @@ public class DsPartServiceImpl extends BaseServiceImpl dsPartEntityList = dsPartMapper.selectDsPartLoseEfficacy(currentDate,futureDate); + List dsPartEntityList = dsPartMapper.selectDsPartLoseEfficacy(currentDate, futureDate); for (DsPartEntity partEntity : dsPartEntityList) { //获取工艺员 String technician = partEntity.getTechnician(); @@ -229,7 +229,7 @@ public class DsPartServiceImpl extends BaseServiceImpl Ids) { - return dsPartMapper.updateNextDueByIds(nextDue,Ids); + return dsPartMapper.updateNextDueByIds(nextDue, Ids); } @@ -245,7 +245,7 @@ public class DsPartServiceImpl extends BaseServiceImpl expireVOList = dsPartMapper.selectDsPartByNextDue(currentDate,futureDate); + List expireVOList = dsPartMapper.selectDsPartByNextDue(currentDate, futureDate); return expireVOList; } @@ -253,7 +253,7 @@ public class DsPartServiceImpl extends BaseServiceImpl partEntityList = dsPartMapper.selectDsPartByIds(Func.toLongList(ids)); - if(CollectionUtils.isEmpty(partEntityList)){ + if (CollectionUtils.isEmpty(partEntityList)) { throw new NullPointerException("零件信息为空"); } @@ -263,8 +263,8 @@ public class DsPartServiceImpl extends BaseServiceImpl sinteringPart(String bPartCode, String zPartCode) { - if(!StringUtils.isEmpty(bPartCode) && !StringUtils.isEmpty(zPartCode)){ - return partRelationService.selectDsPartRelationByPartCodeAndChildPartCode(bPartCode,zPartCode); + if (!StringUtils.isEmpty(bPartCode) && !StringUtils.isEmpty(zPartCode)) { + return partRelationService.selectDsPartRelationByPartCodeAndChildPartCode(bPartCode, zPartCode); } - if(!StringUtils.isEmpty(zPartCode)){ - return partRelationService.selectDsPartRelationByPartCodeAndChildPartCode(null,zPartCode); + if (!StringUtils.isEmpty(zPartCode)) { + return partRelationService.selectDsPartRelationByPartCodeAndChildPartCode(null, zPartCode); } return new ArrayList<>(); @@ -310,12 +310,12 @@ public class DsPartServiceImpl extends BaseServiceImpl zPartList) { - DsPartEntity partEntity = dsPartMapper.selectDsPartByPartIdAndPartCode(dsPart.getId(),dsPart.getPartCode()); - if(null == partEntity){ + DsPartEntity partEntity = dsPartMapper.selectDsPartByPartIdAndPartCode(dsPart.getId(), dsPart.getPartCode()); + if (null == partEntity) { throw new ServiceException("零件ID与零件号有误"); } Long userId = AuthUtil.getUser().getUserId(); - if(null != dsPart.getExpirationPeriod()){ + if (null != dsPart.getExpirationPeriod()) { //到期时间 Date futureDate = addDaysToCurrentDate(dsPart.getExpirationPeriod().intValue()); dsPart.setNextDue(futureDate); @@ -325,27 +325,26 @@ public class DsPartServiceImpl extends BaseServiceImpl partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId()); List idList = partRelationEntityList.stream() .map(DsPartRelationEntity::getChildPartId) @@ -474,11 +473,11 @@ public class DsPartServiceImpl extends BaseServiceImpl * @return */ List listDetailYieldOrder(Long id); + + /** + * 生成订单-计算镀层物料 + * @param yieldOrder + * @return + */ + boolean calculateCoatingMaterial(YieldOrder yieldOrder); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java index b6ed3442..9d950c07 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java @@ -8,16 +8,34 @@ import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.pojo.entity.CoatingThickness; +import org.springblade.desk.basic.pojo.entity.MaterialQuota; +import org.springblade.desk.basic.service.ICoatingThicknessService; +import org.springblade.desk.basic.service.IMaterialQuotaService; +import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity; +import org.springblade.desk.dashboard.service.IDsCraftService; +import org.springblade.desk.dashboard.pojo.entity.BsPlatingEntity; +import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; +import org.springblade.desk.dashboard.service.IBsPlatingService; +import org.springblade.desk.dashboard.service.IDsPartService; +import org.springblade.desk.dashboard.service.IDsProcessService; +import org.springblade.desk.order.constant.PlateGoodsConst; +import org.springblade.desk.order.constant.YieldOrderConst; import org.springblade.desk.order.mapper.PlateGoodsRecordMapper; import org.springblade.desk.order.pojo.entity.PlateGoodsRecord; import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.enums.PlateGoodsEnum; +import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.service.IPlateGoodsRecordDetailService; import org.springblade.desk.order.service.IPlateGoodsRecordService; import org.springblade.desk.order.service.IYieldOrderService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -33,7 +51,12 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl selectPage(IPage page, PlateGoodsRecord entity) { List dataList = baseMapper.selectPage(page, entity); @@ -137,4 +160,164 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl=30){ + //是大批量 + batchFlag=1; + }else{ + //是小批量 + batchFlag=0; + } + //金钾、银钾标志 + int goldSilverFlag=0;//金钾1;银钾0 + //判断是否有镀层物料编码 + if(Func.isEmpty(plateGoodsCode)){ + //查询不到镀层物料编码 + return false; + }else{ + //可以查询到镀层物料编码 + //判断是否是金钾或银钾 + if(plateGoodsCode.equals(PlateGoodsConst.GOLD_POTASSIUM)||plateGoodsCode.equals(PlateGoodsConst.SILVER_POTASSIUM)){ + //是金钾或银钾 + if(plateGoodsCode.equals(PlateGoodsConst.GOLD_POTASSIUM)){ + goldSilverFlag=1; + }else{ + goldSilverFlag=0; + } + //从零件号获取配置码 + if(partCode.contains("-")){ + String partCodeArr[]=partCode.split("-"); + //配置码 + String configCode=partCodeArr[partCodeArr.length-1]; + //根据配置码查询镀种信息 + BsPlatingEntity bsPlatingEntity =bsPlatingService.selectBsPlatingConfigNo(configCode); + //镀层代码 + String matCode=bsPlatingEntity.getMatCode(); + //根据零件号、镀层代码、质量等级,从镀层厚度对应表中查询镀层厚度 + int start_f21e8=0; + if(partCode.startsWith("21E8-210")){ + start_f21e8=1; + } + CoatingThickness CoatingThickness=coatingThicknessService.queryCoatingThickness(matCode,productIdent,start_f21e8); + //镀层厚度 + Long thickness=CoatingThickness.getThickness(); + //未找到镀层厚度 + if(Func.isEmpty(thickness)){ + //将订单状态标记为数据异常,记录异常原因,并退出 + this.updateYieldOrder(yieldOrder); + return false; + }else{ + //根据生产订单(YieldOrder)对象中的零件号和零件版本(与关系),查询DS_CRAFT表 + DsCraftEntity dsCraftEntity = dsCraftService.selectDsCraftByPartCodeAndVersion(dsPart.getId(),partVersion); + //工艺表(DS_CRAFT)id + Long dsCraftId=dsCraftEntity.getId(); + //查询生产工序列表 + List dsProcessList=dsProcessService.selectDsProcessByCraftId(dsCraftId); + // 1. 空列表校验 + if (CollectionUtils.isEmpty(dsProcessList)) { + //将订单状态标记为数据异常,记录异常原因,并退出 + this.updateYieldOrder(yieldOrder); + return false; + } + else{ + //取出工艺能力 + for (DsProcessEntity process : dsProcessList) { + //DS_PROCESS表id + Long dsProcessId=process.getCaId(); + //工艺能力编码 + String craftCode=process.getCraftCode(); + //根据镀层厚度、工艺能力,到物料定额表中查询定额 + MaterialQuota materialQuota=materialQuotaService.queryMaterialQuota(thickness,dsProcessId); + if(null==materialQuota){ + this.updateYieldOrder(yieldOrder); + return false; + } + //定额 + Long quota=materialQuota.getQuota(); + //未找到定额 + if(Func.isEmpty(quota)){ + this.updateYieldOrder(yieldOrder); + return false; + }else{ + //计算物料需求 + Double demand=0.0; + if(goldSilverFlag==0){ + //银钾 + demand=singleArea*quota*0.105; + }else{ + //金钾 + //小批量且工艺能力为(E379、E10120、E10060、E007、E9600、E12340) + if(batchFlag==0&&(craftCode.equals("E379")||craftCode.equals("E10120")||craftCode.equals("E10060")||craftCode.equals("E007")||craftCode.equals("E9600")||craftCode.equals("E12340"))){ + demand=singleArea*quota*0.2829 * 1.2; + }else{ + //金钾其他情况 + demand=singleArea*quota*0.2829; + } + } + //构建镀层物料需求申报对象, 调用保存方法,保存镀层物料需求申报 + PlateGoodsRecord plateGoodsRecord=new PlateGoodsRecord(); + plateGoodsRecord.setGoodsCode(plateGoodsCode); + plateGoodsRecord.setGoodsName(plateGoodsCode.equals(PlateGoodsConst.GOLD_POTASSIUM)?"氢化亚金钾":"氢化银钾"); + plateGoodsRecord.setGoodsDemand(BigDecimal.valueOf(demand)); + plateGoodsRecord.setDeclaredStatus((long) PlateGoodsEnum.STATUS_WAITING.getCode()); + plateGoodsRecord.setWcId(yieldOrder.getWorkCenterId()); + List detailList=new ArrayList<>(); + PlateGoodsRecordDetail plateGoodsRecordDetail=new PlateGoodsRecordDetail(); + plateGoodsRecordDetail.setYoId(yieldOrder.getId()); + this.save(plateGoodsRecord, detailList); + } + + } + } + } + }else{ + //查询不到配置码 + return false; + } + }else { + //不是金钾或银钾 + return false; + } + } + //保存成功 + return true; + } + + /** + * 将订单状态标记为数据异常,记录异常原因 + * @param yieldOrder + */ + public void updateYieldOrder(YieldOrder yieldOrder){ + yieldOrder.setStatus(YieldOrderEnum.STATUS_EXCEPTION.getCode()); + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); + yieldOrderService.updateById(yieldOrder); + } }