Merge remote-tracking branch 'origin/dev-temp-xw-202502050000-44881' into test

tags/yfai-pcn-ext-v2.9
王杰 3 months ago
commit d7954e5961

@ -31,6 +31,10 @@ public interface IMesWorkOrderCutService {
@ApiOperation(value = "查询裁片方案成品配置")
List<MesCutSchemeFg> queryCutSchemeFgList(String cutCode, String organizeCode);
@ApiOperation(value = "查询裁片方案成品配置")
List<MesWorkOrderCutMaterial> queryCutOrderMaterialList(String cutWorkOrder, String organizeCode);
@ApiOperation(value = "查询裁片方案设备信息")
MesCutSchemeEquipment getCutSchemeEquipment(String cutCode, String equipmentCode, String organizeCode);

@ -30,6 +30,9 @@ public class MesWorkOrderCutService implements IMesWorkOrderCutService {
private MesWorkOrderCutDetailRepository workOrderCutDetailRepository;
@Autowired
private MesWorkOrderCutMaterialRepository workOrderCutMaterialRepository;
@Autowired
private MesCutSchemeRepository cutSchemeRepository;
@Autowired
@ -77,6 +80,16 @@ public class MesWorkOrderCutService implements IMesWorkOrderCutService {
}
@Override
public List<MesWorkOrderCutMaterial> queryCutOrderMaterialList(String cutWorkOrder, String organizeCode) {
if (StringUtils.isEmpty(organizeCode)) return Collections.emptyList();
return workOrderCutMaterialRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.CUT_WORK_ORDER_NO},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), cutWorkOrder});
}
@Override
public MesCutSchemeEquipment getCutSchemeEquipment(String cutCode, String equipmentCode, String organizeCode) {
return cutSchemeEquipmentRepository.getByProperty(

@ -2,19 +2,29 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderCutService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesWorkOrderCutDetailModel;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService;
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCutScheme;
import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeFg;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCutMaterial;
import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel;
import cn.estsh.i3plus.pojo.mes.model.StationCustomDialogBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.repository.MesCutSchemeRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Objects;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -22,8 +32,12 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.jws.Oneway;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Description :
@ -40,6 +54,10 @@ public class MesFunctionDialogCutOrderPrintService extends BaseSwsService implem
@Autowired
private IMesWorkOrderCutService workOrderCutService;
@Autowired
private MesCutSchemeRepository cutSchemeRepository;
@Autowired
private MesPartRepository mesPartRepository;
@Override
public Boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) {
@ -82,17 +100,48 @@ public class MesFunctionDialogCutOrderPrintService extends BaseSwsService implem
String cutWorkOrderNo = equipVariableCollectContextList.get(0).getEquipVariableValue();
// 查成品列表
List<MesCutSchemeFg> mesCutSchemeFgs = workOrderCutService.queryCutSchemeFgList(cutWorkOrderNo, reqBean.getOrganizeCode());
mesWorkOrderCutFgDataContextList = new ArrayList<>();
DdlPackBean schemePackBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(cutWorkOrderNo, "cutCode", schemePackBean);
MesCutScheme mesCutScheme =cutSchemeRepository.getByProperty(schemePackBean);
// 如果是补片方案,则需要查询裁片工单原材料,而不是裁片方案原材料
if (mesCutScheme != null && Objects.equal(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),mesCutScheme.getIsFree())) {
// 查裁片工单物料列表
List<MesWorkOrderCutMaterial> workOrderCutMaterialList = workOrderCutService.queryCutOrderMaterialList(cutWorkOrderNo, reqBean.getOrganizeCode());
if (CollectionUtils.isEmpty(workOrderCutMaterialList)) {
MesPcnException.throwFlowException("裁片工单为补片方案但未添加原材料信息");
}
List<String> partNoList = workOrderCutMaterialList.stream().map(MesWorkOrderCutMaterial::getPartNo).collect(Collectors.toList());
// 查询物料信息
DdlPackBean partBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode());
DdlPreparedPack.getInPackList(partNoList, "partNo", partBean);
List<MesPart> mesPartList = mesPartRepository.findByHqlWhere(partBean);
Map<String,List<MesPart>> map = mesPartList.stream().collect(Collectors.groupingBy(MesPart::getPartNo));
mesWorkOrderCutFgDataContextList = new ArrayList<>();
for (MesWorkOrderCutMaterial mesWorkOrderCutMaterial : workOrderCutMaterialList) {
MesWorkOrderCutDetailModel cutDetailModel = new MesWorkOrderCutDetailModel();
BeanUtils.copyProperties(mesWorkOrderCutMaterial, cutDetailModel);
cutDetailModel.setPartName(map.get(mesWorkOrderCutMaterial.getPartNo()).get(0).getPartName());
mesWorkOrderCutFgDataContextList.add(cutDetailModel);
}
} else {
// 查询物料信息
List<MesCutSchemeFg> mesCutSchemeFgs = workOrderCutService.queryCutSchemeFgList(cutWorkOrderNo, reqBean.getOrganizeCode());
mesWorkOrderCutFgDataContextList = new ArrayList<>();
for (MesCutSchemeFg mesWorkOrderCutMaterial : mesCutSchemeFgs) {
MesWorkOrderCutDetailModel cutDetailModel = new MesWorkOrderCutDetailModel();
BeanUtils.copyProperties(mesWorkOrderCutMaterial, cutDetailModel);
mesWorkOrderCutFgDataContextList.add(cutDetailModel);
}
for (MesCutSchemeFg mesCutSchemeFg : mesCutSchemeFgs) {
MesWorkOrderCutDetailModel cutDetailModel = new MesWorkOrderCutDetailModel();
BeanUtils.copyProperties(mesCutSchemeFg, cutDetailModel);
mesWorkOrderCutFgDataContextList.add(cutDetailModel);
}
productionDispatchContextStepService.dispatchMesWorkOrderCutFgDataContext(reqBean, mesWorkOrderCutFgDataContextList);
}

Loading…
Cancel
Save