Merge branch 'uat-temp-nht-2504040000-lx' into uat-temp-wj-chongqingdaqu-dev

# Conflicts:
#	modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java
uat-temp-wj-chongqingdaqu-dev
jason 4 months ago
commit 4ab3775e0d

@ -77,7 +77,7 @@ public class MesSortShippingCheckController {
MesSortShippingCheckModel model = sortShippingCheckService.doShippingOrderNoQuery(shippingOrderManagement);
long end = System.currentTimeMillis();
scanLogUtil.info("扫描发运单执行结束", end - start);
return ResultBean.success(model.getMsg()).setResultObject(model);
return ResultBean.success(model != null ? model.getMsg() : "").setResultObject(model);
} catch (ImppBusiException imppException) {
scanLogUtil.error(imppException.getErrorMsg());
return ResultBean.fail(imppException);

@ -160,12 +160,15 @@ public class MesAssemblyExtService implements IMesAssemblyExtService {
//【排序线】获取生产工单装配件清单
List<MesWorkOrderAssembly> workOrderAssemblyList = getWorkOrderAssemblyList(prodRuleContext, true);
if (CollectionUtils.isEmpty(workOrderAssemblyList)) return workOrderAssemblyList;
if (CollectionUtils.isEmpty(workOrderAssemblyList) || (!isFilterParallel && !isFilterAfterCraft)) return workOrderAssemblyList;
//获取当前工位的第一个装配件的工艺顺序号
Integer processSeq = isFilterAfterCraft ? getProcessSeq(workOrderAssemblyList, prodRuleContext.getWorkCellCode()) : null;
//平行工位
if (isFilterParallel) {
//返回涉及到的平行工位代码集合
List<String> parallelCellCodeList = checkIsExistParallelCellCode(workOrderAssemblyList, prodRuleContext.getWorkCellCode());
List<String> parallelCellCodeList = checkIsExistParallelCellCode(workOrderAssemblyList, prodRuleContext.getWorkCellCode(), processSeq);
if (!CollectionUtils.isEmpty(parallelCellCodeList)) {
prodRuleContext.setParallelInfo(String.format("{%s:%s}", MesPcnExtConstWords.WORK_CELL_CODE, JSONObject.toJSONString(parallelCellCodeList)));
//剔除平行工位的装配件
@ -177,13 +180,9 @@ public class MesAssemblyExtService implements IMesAssemblyExtService {
if (CollectionUtils.isEmpty(workOrderAssemblyList)) return workOrderAssemblyList;
//根据工序顺序号过滤后道
if (isFilterAfterCraft) {
//获取当前工位的第一个装配件的工艺顺序号
Integer processSeq = getProcessSeq(workOrderAssemblyList, prodRuleContext.getWorkCellCode());
if (!StringUtils.isEmpty(processSeq)) {
workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> (null != o &&
(StringUtils.isEmpty(o.getProcessSeq()) || o.getProcessSeq().compareTo(processSeq) <= 0))).collect(Collectors.toList());
}
if (isFilterAfterCraft && !StringUtils.isEmpty(processSeq)) {
workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> (null != o &&
(StringUtils.isEmpty(o.getProcessSeq()) || o.getProcessSeq().compareTo(processSeq) <= 0))).collect(Collectors.toList());
}
return workOrderAssemblyList;
@ -196,7 +195,7 @@ public class MesAssemblyExtService implements IMesAssemblyExtService {
}
//返回涉及到的平行工位代码集合
private List<String> checkIsExistParallelCellCode(List<MesWorkOrderAssembly> workOrderAssemblyList, String workCellCode) {
private List<String> checkIsExistParallelCellCode(List<MesWorkOrderAssembly> workOrderAssemblyList, String workCellCode, Integer processSeq) {
//根据工艺顺序号分组
Map<String, List<MesWorkOrderAssembly>> processSeqMap = CollectionUtils.isEmpty(workOrderAssemblyList) ? null :
workOrderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCellCode()) &&
@ -210,13 +209,24 @@ public class MesAssemblyExtService implements IMesAssemblyExtService {
List<String> workCellCodeList = (entry.getValue().stream().filter(o -> null != o).map(MesWorkOrderAssembly::getWorkCellCode)
.collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
if (CollectionUtils.isEmpty(workCellCodeList) || workCellCodeList.size() == 1) continue;
//判断是否是当前工位
if (workCellCodeList.contains(workCellCode)) {
workCellCodeList.remove(workCellCode);
} else {
//判断是否是当前工位的平行工位
if (!workCellCodeList.contains(workCellCode)) {
//存在processSeq则表示需要过滤后道, 判断当前循环的工艺顺序号是否属于后道
if (!StringUtils.isEmpty(processSeq)) {
List<Integer> processSeqList = (entry.getValue().stream().filter(o -> null != o).map(MesWorkOrderAssembly::getProcessSeq)
.collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
//工艺顺序号升序
processSeqList.sort(Comparator.naturalOrder());
if (processSeqList.get(0).compareTo(processSeq) > 0) continue;
}
//工艺顺序号升序
workCellCodeList.sort(Comparator.naturalOrder());
workCellCodeList.remove(0);
} else {
//当前工位
workCellCodeList.remove(workCellCode);
}
if (CollectionUtils.isEmpty(parallelCellCodeList)) parallelCellCodeList = new ArrayList<>();
parallelCellCodeList.addAll(workCellCodeList);
}

@ -210,7 +210,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
//根据扫描的装车单找到是否先装车配置
//若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。
if (!Objects.equals(loadingList.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) {
if (!Objects.equals(shippingGroup.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean);
MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean);

@ -136,17 +136,18 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
@Override
public MesSortShippingCheckModel doShippingOrderNoQuery(MesShippingOrderManagement shippingOrderManagement) {
//返回数据组装
MesSortShippingCheckModel model = new MesSortShippingCheckModel();
//校验发运单
MesShippingOrderManagement orderManagement = getMesShippingOrderManagement(shippingOrderManagement);
if(Objects.isNull(orderManagement)){
return null;
model.setMsg(String.format("发运单【%s】已跳过请扫描下一个发运单",shippingOrderManagement.getShippingCode()));
return model;
}
//校验发运单扫描顺序
checkShippingOrderSeq(shippingOrderManagement, orderManagement);
//根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据!
checkLoadingList(shippingOrderManagement, orderManagement);
//返回数据组装
MesSortShippingCheckModel model = new MesSortShippingCheckModel();
if (!StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
model.setIsScanLocationCode(true);
}
@ -759,7 +760,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
shippingList.addAll(mesJisShippings);
}
}
} else {
} else if (Objects.equals(shippingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue())){
//查询装车单明细
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(orderManagement.getLoadingListId(),"pid",orderManagementPackBean);

@ -288,9 +288,10 @@ public class MesAssemblyShowSortStepService extends BaseStepService {
}
//封装装配件信息
private MesAssemblyShowContext assemblyShowContext(MesProductionAssemblyContext productionAssemblyContext, Boolean isNeedShowMatchRule, String topRowInfo) {
private MesAssemblyShowContext assemblyShowContext(MesProductionAssemblySortContext productionAssemblyContext, Boolean isNeedShowMatchRule, String topRowInfo) {
MesAssemblyShowContext assemblyShowContext = new MesAssemblyShowContext();
BeanUtils.copyProperties(productionAssemblyContext, assemblyShowContext);
overrideAssemblyPartName(productionAssemblyContext, assemblyShowContext);
if (isNeedShowMatchRule) assemblyShowContext.setMatchTypeName(showMatchRule(assemblyShowContext));
assemblyShowContext.setAssemblyStatusName(MesExtEnumUtil.ASSEMBLY_STATUS.valueOfDescription(assemblyShowContext.getAssemblyStatus()));
if (MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue() != assemblyShowContext.getAssemblyStatus())
@ -301,6 +302,15 @@ public class MesAssemblyShowSortStepService extends BaseStepService {
return assemblyShowContext;
}
//显示规则
private MesAssemblyShowContext overrideAssemblyPartName(MesProductionAssemblySortContext productionAssemblyContext, MesAssemblyShowContext assemblyShowContext) {
if (StringUtils.isEmpty(productionAssemblyContext.getDisplayRule())) return assemblyShowContext;
if (productionAssemblyContext.getDisplayRule().compareTo(MesExtEnumUtil.DISPLAY_RULE.DISPLAY_RULE_10.getValue()) == 0) return assemblyShowContext;
if (productionAssemblyContext.getDisplayRule().compareTo(MesExtEnumUtil.DISPLAY_RULE.DISPLAY_RULE_20.getValue()) == 0) return assemblyShowContext.assemblyPartName(productionAssemblyContext.getActionName());
if (StringUtils.isEmpty(productionAssemblyContext.getActionName())) return assemblyShowContext;
return assemblyShowContext.assemblyPartName(assemblyShowContext.getAssemblyPartName() + MesPcnExtConstWords.SQUARE_BRACKETS_L + productionAssemblyContext.getActionName() + MesPcnExtConstWords.SQUARE_BRACKETS_R);
}
private String showMatchRule(MesAssemblyShowContext assemblyShowContext) {
if (!MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.checkIsNeedShowMatchRule(assemblyShowContext.getMatchType())) return MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.valueOfDescription(assemblyShowContext.getMatchType());
return MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.valueOfDescription(assemblyShowContext.getMatchType()) + "【" + assemblyShowContext.getMatchRule() + "】";

@ -78,4 +78,8 @@ public class MesAssemblyShowContext implements Serializable {
return this;
}
public MesAssemblyShowContext assemblyPartName(String assemblyPartName) {
this.assemblyPartName = assemblyPartName;
return this;
}
}

Loading…
Cancel
Save