BKGY_MYT 1 month ago
parent 0218f014e8
commit 94472a99da

@ -222,7 +222,7 @@ public class SubController {
@ApiOperation("数据处理")
@PostMapping("/SubData")
public JsonData SubData( PmSubHis pmSubHis, @PathVariable Long organizationId) {
public JsonData SubData(@RequestBody PmSubHis pmSubHis, @PathVariable Long organizationId) {
SecurityTokenHelper.validTokenIgnoreInsert(pmSubHis);
String strSlab = pmSubHis.getSlabNo();
SubParams subParams = new SubParams();
@ -2821,27 +2821,46 @@ public class SubController {
GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i);
PmPdSlab pmPdSlabDO = new PmPdSlab();
pmPdSlabDO.setPono(SInfo.getPono());
pmPdSlabDO.setSlabDivNo(BigDecimal.ZERO); //TODO 板坯分割号 未赋值 查询板坯号等于slab_no的组板板坯表的记录数+1
pmPdSlabDO.setSlabDivNo(BigDecimal.valueOf(i+1)); //TODO 板坯分割号 未赋值 查询板坯号等于slab_no的组板板坯表的记录数+1
pmPdSlabDO.setVirtualSlabNo(ggcr.getVirtualSlabNo());
pmPdSlabDO.setSlabNo(ggcr.getSlabNo());
pmPdSlabDO.setMatDesignKind("S");
pmPdSlabDO.setPdStatusHp("18");
pmPdSlabDO.setPdResp("781"); // TODO 组板责任者 未赋值 操作人id
pmPdSlabDO.setFormPlateMode("A1"); //TODO 组板方式 需要判断
pmPdSlabDO.setPickModeLenDir(BigDecimal.ZERO); //TODO 取板方式_长度方向 未赋值
pmPdSlabDO.setPickModeWidDir(BigDecimal.ZERO); //TODO 取板方式_宽度方向 未赋值
pmPdSlabDO.setPickModeLenDir(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().size()));
BigDecimal widDir = ggcr.getLtActInfoGPreOrder().stream().filter(item -> item.getCombinationFlag() == 0).count() > 0? BigDecimal.ONE: BigDecimal.valueOf(2);
pmPdSlabDO.setPickModeWidDir(widDir); //TODO 取板方式_宽度方向 未赋值
pmPdSlabDO.setFurType("C");// TODO 加热炉类型 暂时赋值为C
pmPdSlabDO.setAutoManualFlag("M");
pmPdSlabDO.setOrderRemainDiv("1");
pmPdSlabDO.setCanDelFlag("1");
//TODO合同个数取所有合同的数量
List<String> orderNoList = ggcr.getLtActInfoGPreOrder().stream().map(GPreOrder::getOrderNo).distinct().collect(Collectors.toList());//根据实际合同信息 的合同号去重 取出板内合同个数
List<String> unOrderNoList = new ArrayList<>();
Integer zubanNum = 0;
for(int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++){
if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0){
unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getOrderNo());
zubanNum += 1;
}else {
for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++){
unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(k).getInfoGPreOrder().getOrderNo());
zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size() ;
}
}
}
List<String> orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList());
pmPdSlabDO.setOrderNumInPlate(BigDecimal.valueOf(orderNoList.size()));
//TODO:合同数量,取所有小板的数据量
pmPdSlabDO.setTotSmallPlateNum(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().size()));
pmPdSlabDO.setTotSmallPlateNum(BigDecimal.valueOf(zubanNum));
//TODO轴合同获取
GPreOrder axleGPreOrder = ggcr.getLtActInfoGPreOrder().get(0);
if(ggcr.getLtActInfoGPreOrder().get(0).getCombinationFlag() == 1){
axleGPreOrder = ggcr.getLtActInfoGPreOrder().get(0).getLtInfoCombGPreOrder().get(0).getInfoGPreOrder();
}
String axleOrderNo = axleGPreOrder.getOrderNo(); //轴合同
Optional<PmContMscTech> resultPmContMscTechDO = plistPmContMscTechDO.stream()
.filter(item -> ggcr.getLtActInfoGPreOrder().get(0).getOrderNo().equals(item.getOrderNo())) //TODO 根据轴合同号查询合同工艺表 暂时取第一条合同
.filter(item -> axleOrderNo.equals(item.getOrderNo())) //TODO 根据轴合同号查询合同工艺表 暂时取第一条合同
.findFirst();
pmPdSlabDO.setAdTypeCode(resultPmContMscTechDO.get().getAdTypeCode());
pmPdSlabDO.setAdModeCode(resultPmContMscTechDO.get().getAdModeCode());
@ -2849,7 +2868,7 @@ public class SubController {
pmPdSlabDO.setCutModeCode(resultPmContMscTechDO.get().getCutModeCode());
//TODO 缺少质量模块MES合同主档QD_TO_PO_ORDER
// pmPdSlabDO.setUltCode(resultPmContMscTechDO.get().getUltCode());
pmPdSlabDO.setUltCode(resultPmContMscTechDO.get().getUltCode());
//TODO 遍历组板合同根据合同号从质量模块MES合同主档QD_TO_PO_ORDER读取ERP_UT_SPEC1探伤标准1、ERP_UT_SPEC2超声探伤标2、ERP_UT_SPEC3超声探伤标3去重后所有数据拼接成一条记录
//遍历 orderNoList 拿每一条orderNo查询plistQdToPoOrderDO 获取ERP_UT_SPEC1ERP_UT_SPEC2ERP_UT_SPEC3 ,将获取的每一个探伤标准 去重后拼接成一条记录
StringBuilder ultDetectMethodCodeBuilder = new StringBuilder();
@ -2892,23 +2911,45 @@ public class SubController {
String coolCode = "";
// 遍历 组板合同列表
for (GPreOrder gPreOrder : ggcr.getLtActInfoGPreOrder()) {
String orderNo = gPreOrder.getOrderNo();
String mscLineNo = gPreOrder.getInfoPmContMscTechDO().getMscLineNo();
// 根据 orderNo 和 mscLineNo 在 plistPmContMscTechDO 中查找匹配项
Optional<PmContMscTech> matchingItem = plistPmContMscTechDO.stream()
.filter(item -> orderNo.equals(item.getOrderNo()) && mscLineNo.equals(item.getMscLineNo()))
.findFirst();
if (!ultDetectMethodCode.isEmpty()) {
if (!coolCode.isEmpty()) {
break;
} else {
coolCode = nvl(matchingItem.get().getCoolCode(), "");
if(gPreOrder.getCombinationFlag() == 1){
for (GComBOrder gComBOrder : gPreOrder.getLtInfoCombGPreOrder()) {
String orderNo = gComBOrder.getInfoGPreOrder().getOrderNo();
String mscLineNo = gComBOrder.getInfoGPreOrder().getInfoPmContMscTechDO().getMscLineNo();
Optional<PmContMscTech> matchingItem = plistPmContMscTechDO.stream()
.filter(item -> orderNo.equals(item.getOrderNo()) && mscLineNo.equals(item.getMscLineNo()))
.findFirst();
if (!ultDetectMethodCode.isEmpty()) {
if (!coolCode.isEmpty()) {
break;
} else {
coolCode = nvl(matchingItem.get().getCoolCode(), "");
}
} else {
ultDetectMethodCode = nvl(matchingItem.get().getUltDetectMethodCode(), "");
if (coolCode.isEmpty()) {
coolCode = nvl(matchingItem.get().getCoolCode(), "");
}
}
}
} else {
ultDetectMethodCode = nvl(matchingItem.get().getUltDetectMethodCode(), "");
if (coolCode.isEmpty()) {
coolCode = nvl(matchingItem.get().getCoolCode(), "");
}else{
String orderNo = gPreOrder.getOrderNo();
String mscLineNo = gPreOrder.getInfoPmContMscTechDO().getMscLineNo();
// 根据 orderNo 和 mscLineNo 在 plistPmContMscTechDO 中查找匹配项
Optional<PmContMscTech> matchingItem = plistPmContMscTechDO.stream()
.filter(item -> orderNo.equals(item.getOrderNo()) && mscLineNo.equals(item.getMscLineNo()))
.findFirst();
if (!ultDetectMethodCode.isEmpty()) {
if (!coolCode.isEmpty()) {
break;
} else {
coolCode = nvl(matchingItem.get().getCoolCode(), "");
}
} else {
ultDetectMethodCode = nvl(matchingItem.get().getUltDetectMethodCode(), "");
if (coolCode.isEmpty()) {
coolCode = nvl(matchingItem.get().getCoolCode(), "");
}
}
}
}
@ -2916,7 +2957,7 @@ public class SubController {
pmPdSlabDO.setCoolCode(coolCode);
Optional<PmProContProdTtr> resultPmProContProdAttrDO = plistPmProContProdAttrDO.stream()
.filter(item -> ggcr.getLtActInfoGPreOrder().get(0).getOrderNo().equals(item.getOrderNo())) //TODO 根据轴合同号查询生产合同产品属性表 暂时取第一条合同
.filter(item -> axleOrderNo.equals(item.getOrderNo())) //TODO 根据轴合同号查询生产合同产品属性表 暂时取第一条合同
.findFirst();
pmPdSlabDO.setWithSideFlag(resultPmProContProdAttrDO.get().getProdSideMark());
@ -2925,15 +2966,30 @@ public class SubController {
String urgOrderFlag = "";
for (GPreOrder gPreOrder : ggcr.getLtActInfoGPreOrder()) {
String orderNo = gPreOrder.getOrderNo();
if(gPreOrder.getCombinationFlag() == 1){
for (GComBOrder gComBOrder : gPreOrder.getLtInfoCombGPreOrder()) {
String orderNo = gComBOrder.getInfoGPreOrder().getOrderNo();
String mscLineNo = gComBOrder.getInfoGPreOrder().getInfoPmContMscTechDO().getMscLineNo();
Optional<PmProContProdTtr> pmProContProdAttrDOItem = plistPmProContProdAttrDO.stream()
.filter(item -> orderNo.equals(item.getOrderNo()))
.findFirst();
urgOrderFlag = String.valueOf(nvl(pmProContProdAttrDOItem.get().getUrgOrderFlag(), ""));
if (!urgOrderFlag.isEmpty()) {
break;
}
}
// 根据 orderNo 和 mscLineNo 在 plistPmContMscTechDO 中查找匹配项
Optional<PmProContProdTtr> pmProContProdAttrDOItem = plistPmProContProdAttrDO.stream()
.filter(item -> orderNo.equals(item.getOrderNo()))
.findFirst();
urgOrderFlag = String.valueOf(nvl(pmProContProdAttrDOItem.get().getUrgOrderFlag(), ""));
if (!urgOrderFlag.isEmpty()) {
break;
}else{
String orderNo = gPreOrder.getOrderNo();
// 根据 orderNo 和 mscLineNo 在 plistPmContMscTechDO 中查找匹配项
Optional<PmProContProdTtr> pmProContProdAttrDOItem = plistPmProContProdAttrDO.stream()
.filter(item -> orderNo.equals(item.getOrderNo()))
.findFirst();
urgOrderFlag = String.valueOf(nvl(pmProContProdAttrDOItem.get().getUrgOrderFlag(), ""));
if (!urgOrderFlag.isEmpty()) {
break;
}
}
}
pmPdSlabDO.setUrgOrderFlag(urgOrderFlag);
@ -2968,7 +3024,7 @@ public class SubController {
pmPdSlabDO.setFixSlabLen(BigDecimal.valueOf(ggcr.getVirtualSlab_Len()));
Optional<PmContMscTech> resultPmContMscTechDO1 = plistPmContMscTechDO.stream()
.filter(item -> ggcr.getLtActInfoGPreOrder().get(0).getOrderNo().equals(item.getOrderNo()) && ggcr.getLtActInfoGPreOrder().get(0).getInfoPmContMscTechDO().getMscLineNo().equals(item.getMscLineNo())) //TODO 根据轴合同号和产线号查询合同工艺表 暂时取第一条合同
.filter(item -> axleOrderNo.equals(item.getOrderNo()) && ggcr.getLtActInfoGPreOrder().get(0).getInfoPmContMscTechDO().getMscLineNo().equals(item.getMscLineNo())) //TODO 根据轴合同号和产线号查询合同工艺表 暂时取第一条合同
.findFirst();
pmPdSlabDO.setHpFlameCleanDiv(resultPmContMscTechDO1.get().getFlameCleanDiv());
@ -2986,9 +3042,9 @@ public class SubController {
pmPdSlabDO.setRollAimThick(ggcr.getCal_Thk());
pmPdSlabDO.setRollAimWidth(BigDecimal.valueOf(ggcr.getCal_Wid()));
pmPdSlabDO.setRollAimLen(BigDecimal.valueOf(ggcr.getCal_Len()));
pmPdSlabDO.setOrderThickAxis(ggcr.getLtActInfoGPreOrder().get(0).getThk());
pmPdSlabDO.setCombinePlateWidth(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().get(0).getWid()));
pmPdSlabDO.setCombinePlateLen(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().get(0).getLen()));
pmPdSlabDO.setOrderThickAxis(axleGPreOrder.getThk());
pmPdSlabDO.setCombinePlateWidth(BigDecimal.valueOf(axleGPreOrder.getWid()));
pmPdSlabDO.setCombinePlateLen(BigDecimal.valueOf(axleGPreOrder.getLen()));
pmPdSlabDO.setRollWtHp(weight);
BigDecimal minThickTolMax = ggcr.getLtActInfoGPreOrder().stream()
@ -3002,11 +3058,20 @@ public class SubController {
.orElse(BigDecimal.ZERO);
pmPdSlabDO.setRollThickTolMin(maxThickTolMin);
BigDecimal yield = (ggcr.getLtActInfoGPreOrder().stream()
.map(gPreOrder -> BigDecimal.valueOf(gPreOrder.getWid()).multiply(gPreOrder.getThk()).multiply(BigDecimal.valueOf(gPreOrder.getLen())))
.reduce(BigDecimal.ZERO, BigDecimal::add))
.multiply(BigDecimal.valueOf(7.85))
.divide(weight.multiply( BigDecimal.valueOf(1000000000)), 4, RoundingMode.HALF_UP);
BigDecimal yield = BigDecimal.ZERO;
for(int l = 0; l < ggcr.getLtActInfoGPreOrder().size(); l++){
if(ggcr.getLtActInfoGPreOrder().get(l).getCombinationFlag() == 1){
List<GComBOrder> gComBOrders = ggcr.getLtActInfoGPreOrder().get(l).getLtInfoCombGPreOrder();
for(int m = 0; m < ggcr.getLtActInfoGPreOrder().get(l).getLtInfoCombGPreOrder().size(); m++){
yield = yield.add(BigDecimal.valueOf(gComBOrders.get(m).getWid()).multiply(gComBOrders.get(m).getThk()).multiply(BigDecimal.valueOf(gComBOrders.get(m).getLen())));
}
}else{
yield = yield.add(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().get(l).getWid()).multiply(ggcr.getLtActInfoGPreOrder().get(l).getThk()).multiply(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().get(l).getLen())));
}
}
yield = yield.multiply(BigDecimal.valueOf(7.85)).divide(weight.multiply( BigDecimal.valueOf(1000000000)), 4, RoundingMode.HALF_UP);
pmPdSlabDO.setCommandYield(yield);
pmPdSlabDO.setNormYield(yield);
pmPdSlabDO.setRollYield(yield);
@ -3025,7 +3090,7 @@ public class SubController {
pmPdSlabDO.setBroadFlag("0");
}
pmPdSlabDO.setOrderNoAxis(ggcr.getLtActInfoGPreOrder().get(0).getOrderNo());//TODO 轴合同号 暂时取第一个订单号
pmPdSlabDO.setOrderNoAxis(axleGPreOrder.getOrderNo());//TODO 轴合同号 暂时取第一个订单号
pmPdSlabDO.setMscLineNo(SInfo.getMscLineNo()); //TODO 产线号,暂时默认板坯产线号
pmPdSlabDO.setTransFlag(BigDecimal.valueOf(0));
@ -3043,8 +3108,8 @@ public class SubController {
pmPdSlabDO.setTenantId(organizationId);
// pmPdSlabDO.setObjectVersionNumber(1L);
SetPmCmdSlab(pmPdSlabDO,organizationId);//命令板坯表
SetPmCmdLargePlt(pmPdSlabDO, ggcr,resultPmContMscTechDO1.get(),organizationId);//命令大板表
SetPmCmdSlab(pmPdSlabDO,resultPmProContProdAttrDO.get(),organizationId);//命令板坯表
SetPmCmdLargePlt(pmPdSlabDO, ggcr,resultPmContMscTechDO1.get(),resultPmProContProdAttrDO.get(),organizationId);//命令大板表
pmPdSlabDOList.add(pmPdSlabDO);
}
@ -3052,12 +3117,12 @@ public class SubController {
//大板粗切位置表
public void SetPmPdPlateCut(Long organizationId) {
for (int i = 0; i < gltSelGGrpCalRslt.size(); i++) {
for (int i = 0; i < gltSelGGrpCalRslt.size(); i++) {// 异宽判断 长度判断 热处理
GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i);
PmPdPlateCut pmPdPlateCutDO = new PmPdPlateCut();
pmPdPlateCutDO.setPdMatNo(ggcr.getVirtualSlabNo());
//TODO 粗切类型 粗切位置 位置序号 取值待定
//pmPdPlateCutDO.setCutType();
pmPdPlateCutDO.setCutType("P"); //粗切类型M:搬送用D:异宽用P命令用H热分切用
//pmPdPlateCutDO.setPositionType();
//pmPdPlateCutDO.setPositionSeq();
@ -3077,22 +3142,46 @@ public class SubController {
public void SetPmPdBlockPos(Long organizationId) {
for (int i = 0; i < gltSelGGrpCalRslt.size(); i++) {
GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i);
List<String> orderNoList = ggcr.getLtActInfoGPreOrder().stream()
.map(GPreOrder::getOrderNo).distinct().collect(Collectors.toList()); //合同号去重
List<String> unOrderNoList = new ArrayList<>();
Integer zubanNum = 0;
for(int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++){
if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0){
unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getOrderNo());
zubanNum += 1;
}else {
for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++){
unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(k).getInfoGPreOrder().getOrderNo());
zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size() ;
}
}
}
List<String> orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList());
for (int j = 0; j < orderNoList.size(); j++) {
PmPdBlockPos pmPdBlockPosDO = new PmPdBlockPos();
pmPdBlockPosDO.setPdMatNo(ggcr.getVirtualSlabNo());
pmPdBlockPosDO.setOrderNo(orderNoList.get(j));
pmPdBlockPosDO.setOrderSeqNo(Long.valueOf(j + 1));//TODO 订单序号 暂时以实际订单信息列表顺序
List<GPreOrder> resultGPreOrder = ggcr.getLtActInfoGPreOrder().stream()
.filter(item -> item.getOrderNo().equals(pmPdBlockPosDO.getOrderNo()))
.collect(Collectors.toList());
List<GPreOrder> resultGPreOrder = new ArrayList<>();
for(int k = 0; k < ggcr.getLtActInfoGPreOrder().size(); k++){
if(ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1){
for (int l = 0; l < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); l++){
if(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder().getOrderNo().equals(pmPdBlockPosDO.getOrderNo())){
resultGPreOrder.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder());
}
}
}else{
resultGPreOrder.add(ggcr.getLtActInfoGPreOrder().get(j));
}
}
// List<GPreOrder> resultGPreOrder = ggcr.getLtActInfoGPreOrder().stream()
// .filter(item -> item.getOrderNo().equals(pmPdBlockPosDO.getOrderNo()))
// .collect(Collectors.toList());
Integer blockPlateNum = resultGPreOrder.size();
pmPdBlockPosDO.setBlockPlateNum(BigDecimal.valueOf(blockPlateNum));
pmPdBlockPosDO.setSlabNo(ggcr.getSlabNo());
pmPdBlockPosDO.setProContId(resultGPreOrder.get(0).getInfoPmProContDo().getProContId());
// pmPdBlockPosDO.setOrderBlockNo(); //TODO 厚板组板块号 暂时不知如何赋值
pmPdBlockPosDO.setOrderBlockNo(Long.valueOf(i+1)); //TODO 厚板组板块号 暂时不知如何赋值
pmPdBlockPosDO.setCreatedBy(781L);//TODO 创建人修改人暂时默认781 BKGY
pmPdBlockPosDO.setLastUpdatedBy(781L);
@ -3111,17 +3200,43 @@ public class SubController {
public void SetPmPdContSum(Long organizationId) {
for (int i = 0; i < gltSelGGrpCalRslt.size(); i++) {
GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i);
List<String> orderNoList = ggcr.getLtActInfoGPreOrder().stream()
.map(GPreOrder::getOrderNo).distinct().collect(Collectors.toList()); //合同号去重
List<String> unOrderNoList = new ArrayList<>();
Integer zubanNum = 0;
for(int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++){
if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 0){
unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getOrderNo());
zubanNum += 1;
}else {
for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++){
unOrderNoList.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(k).getInfoGPreOrder().getOrderNo());
zubanNum += ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size() ;
}
}
}
List<String> orderNoList = unOrderNoList.stream().distinct().collect(Collectors.toList());
for (int j = 0; j < orderNoList.size(); j++) {
PmPdContSum pmPdContSumDO = new PmPdContSum();
pmPdContSumDO.setPdMatNo(ggcr.getVirtualSlabNo());
pmPdContSumDO.setOrderNo(orderNoList.get(j));
pmPdContSumDO.setOrderSeqNo(BigDecimal.valueOf(j + 1));
List<GPreOrder> gPreOrders = ggcr.getLtActInfoGPreOrder().stream() // 当前合同号在实际合同列表中的条数
.filter(item -> item.getOrderNo().equals(pmPdContSumDO.getOrderNo()))
.collect(Collectors.toList());
List<GPreOrder> gPreOrders = new ArrayList<>();
for(int k = 0; k < ggcr.getLtActInfoGPreOrder().size(); k++){
if(ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1){
for (int l = 0; l < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); l++){
if(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder().getOrderNo().equals(pmPdContSumDO.getOrderNo())){
gPreOrders.add(ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(l).getInfoGPreOrder());
}
}
}else{
gPreOrders.add(ggcr.getLtActInfoGPreOrder().get(j));
}
}
// List<GPreOrder> gPreOrders = ggcr.getLtActInfoGPreOrder().stream() // 当前合同号在实际合同列表中的条数
// .filter(item -> item.getOrderNo().equals(pmPdContSumDO.getOrderNo()))
// .collect(Collectors.toList());
Integer orderPlateNum = gPreOrders.size();
pmPdContSumDO.setOrderPlateNum(BigDecimal.valueOf(orderPlateNum));
pmPdContSumDO.setSlabNo(ggcr.getSlabNo());
@ -3143,11 +3258,15 @@ public class SubController {
pmPdContSumDO.setLastUpdatedBy(781L);
pmPdContSumDO.setCreationDate(now);
pmPdContSumDO.setLastUpdateDate(now);
pmPdContSumDO.setAxisFlag(0L);//TODO 轴合同标记暂时默认0
pmPdContSumDO.setAxisFlag(0L);
if(j == 0){
pmPdContSumDO.setAxisFlag(1L);//TODO 轴合同标记,暂时取第一条为轴合同
}
pmPdContSumDO.setTenantId(organizationId);
// pmPdContSumDO.setObjectVersionNumber(1L);
SetPmCmdCont(pmPdContSumDO, gPreOrders.get(0),ggcr.getLtActInfoGPreOrder().size(),organizationId);//命令参数表
SetPmCmdCont(pmPdContSumDO, gPreOrders.get(0),zubanNum,organizationId);//命令参数表
pmPdContSumDOList.add(pmPdContSumDO);
}
}
@ -3158,51 +3277,94 @@ public class SubController {
for (int i = 0; i < gltSelGGrpCalRslt.size(); i++) {
GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i);
for (int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++) {
GPreOrder gpo = ggcr.getLtActInfoGPreOrder().get(j);
PmSmallPltPos pmSmallPltPosDO = new PmSmallPltPos();
pmSmallPltPosDO.setPdMatNo(ggcr.getVirtualSlabNo());
pmSmallPltPosDO.setOrderNo(gpo.getOrderNo());
pmSmallPltPosDO.setProContId(gpo.getInfoPmProContDo().getProContId());
pmSmallPltPosDO.setOrderSeqNo(Long.valueOf(j + 1));
pmSmallPltPosDO.setSlabNo(ggcr.getSlabNo());
Optional<PmProContProdTtr> resultPmProContProdAttrDO = plistPmProContProdAttrDO.stream()
.filter(item -> gpo.getOrderNo().equals(item.getOrderNo())) //根据合同号查询生产合同产品属性表
.findFirst();
if (resultPmProContProdAttrDO.get().getTrimCode().equals("0")) {
pmSmallPltPosDO.setSmallPlateDivNo("000");
} else {
pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[j]);
}
pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j+1));//TODO 取板方式 长度方向 列数累加
pmSmallPltPosDO.setPickModeWidDir(1L);//TODO 取板方式 宽度方向 第一行
pmSmallPltPosDO.setOrderThick(gpo.getThk());
pmSmallPltPosDO.setOrderWidth(BigDecimal.valueOf(gpo.getWid()));
pmSmallPltPosDO.setOrderLen(BigDecimal.valueOf(gpo.getLen())); //TODO 长度不确定用实际长度还是长度
pmSmallPltPosDO.setOrderLenMax(gpo.getInfoPmProContProdAttrDO().getOrderMaxLen());
pmSmallPltPosDO.setOrderLenMin(gpo.getInfoPmProContProdAttrDO().getOrderMinLen());
if(ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1){
for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++) {
GPreOrder gpo = ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().get(k).getInfoGPreOrder();
PmSmallPltPos pmSmallPltPosDO = new PmSmallPltPos();
pmSmallPltPosDO.setPdMatNo(ggcr.getVirtualSlabNo());
pmSmallPltPosDO.setOrderNo(gpo.getOrderNo());
pmSmallPltPosDO.setProContId(gpo.getInfoPmProContDo().getProContId());
pmSmallPltPosDO.setOrderSeqNo(Long.valueOf(j + 1));
pmSmallPltPosDO.setSlabNo(ggcr.getSlabNo());
Optional<PmProContProdTtr> resultPmProContProdAttrDO = plistPmProContProdAttrDO.stream()
.filter(item -> gpo.getOrderNo().equals(item.getOrderNo())) //根据合同号查询生产合同产品属性表
.findFirst();
if (resultPmProContProdAttrDO.get().getTrimCode().equals("0")) {
pmSmallPltPosDO.setSmallPlateDivNo("000");
} else {
pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[j]);
}
pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j+1));
pmSmallPltPosDO.setPickModeWidDir(Long.valueOf(k+1));
pmSmallPltPosDO.setOrderThick(gpo.getThk());
pmSmallPltPosDO.setOrderWidth(BigDecimal.valueOf(gpo.getWid()));
pmSmallPltPosDO.setOrderLen(BigDecimal.valueOf(gpo.getLen())); //TODO 长度不确定用实际长度还是长度
pmSmallPltPosDO.setOrderLenMax(gpo.getInfoPmProContProdAttrDO().getOrderMaxLen());
pmSmallPltPosDO.setOrderLenMin(gpo.getInfoPmProContProdAttrDO().getOrderMinLen());
pmSmallPltPosDO.setSmallPlateThick(gpo.getThk());
pmSmallPltPosDO.setSmallPlateWidth(BigDecimal.valueOf(gpo.getWid()));
pmSmallPltPosDO.setSmallPlateLen(BigDecimal.valueOf(gpo.getLen())); //TODO 长度不确定用实际长度还是长度
pmSmallPltPosDO.setSmallPlateThick(gpo.getThk());
pmSmallPltPosDO.setSmallPlateWidth(BigDecimal.valueOf(gpo.getWid()));
pmSmallPltPosDO.setSmallPlateLen(BigDecimal.valueOf(gpo.getLen())); //TODO 长度不确定用实际长度还是长度
pmSmallPltPosDO.setCreatedBy(781L);//TODO 创建人修改人暂时默认781 BKGY
pmSmallPltPosDO.setLastUpdatedBy(781L);
pmSmallPltPosDO.setCreationDate(now);
pmSmallPltPosDO.setLastUpdateDate(now);
pmSmallPltPosDO.setCreatedBy(781L);//TODO 创建人修改人暂时默认781 BKGY
pmSmallPltPosDO.setLastUpdatedBy(781L);
pmSmallPltPosDO.setCreationDate(now);
pmSmallPltPosDO.setLastUpdateDate(now);
pmSmallPltPosDO.setTenantId(organizationId);
pmSmallPltPosDO.setTenantId(organizationId);
// pmSmallPltPosDO.setObjectVersionNumber(1L);
SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),mscLineNo,organizationId);
pmSmallPltPosDOList.add(pmSmallPltPosDO);
SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),mscLineNo,organizationId);
pmSmallPltPosDOList.add(pmSmallPltPosDO);
}
}else{
GPreOrder gpo = ggcr.getLtActInfoGPreOrder().get(j);
PmSmallPltPos pmSmallPltPosDO = new PmSmallPltPos();
pmSmallPltPosDO.setPdMatNo(ggcr.getVirtualSlabNo());
pmSmallPltPosDO.setOrderNo(gpo.getOrderNo());
pmSmallPltPosDO.setProContId(gpo.getInfoPmProContDo().getProContId());
pmSmallPltPosDO.setOrderSeqNo(Long.valueOf(j + 1));
pmSmallPltPosDO.setSlabNo(ggcr.getSlabNo());
Optional<PmProContProdTtr> resultPmProContProdAttrDO = plistPmProContProdAttrDO.stream()
.filter(item -> gpo.getOrderNo().equals(item.getOrderNo())) //根据合同号查询生产合同产品属性表
.findFirst();
if (resultPmProContProdAttrDO.get().getTrimCode().equals("0")) {
pmSmallPltPosDO.setSmallPlateDivNo("000");
} else {
pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[j]);
}
pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j+1));//TODO 取板方式 长度方向 列数累加
pmSmallPltPosDO.setPickModeWidDir(1L);//TODO 取板方式 宽度方向 第一行
pmSmallPltPosDO.setOrderThick(gpo.getThk());
pmSmallPltPosDO.setOrderWidth(BigDecimal.valueOf(gpo.getWid()));
pmSmallPltPosDO.setOrderLen(BigDecimal.valueOf(gpo.getLen())); //TODO 长度不确定用实际长度还是长度
pmSmallPltPosDO.setOrderLenMax(gpo.getInfoPmProContProdAttrDO().getOrderMaxLen());
pmSmallPltPosDO.setOrderLenMin(gpo.getInfoPmProContProdAttrDO().getOrderMinLen());
pmSmallPltPosDO.setSmallPlateThick(gpo.getThk());
pmSmallPltPosDO.setSmallPlateWidth(BigDecimal.valueOf(gpo.getWid()));
pmSmallPltPosDO.setSmallPlateLen(BigDecimal.valueOf(gpo.getLen())); //TODO 长度不确定用实际长度还是长度
pmSmallPltPosDO.setCreatedBy(781L);//TODO 创建人修改人暂时默认781 BKGY
pmSmallPltPosDO.setLastUpdatedBy(781L);
pmSmallPltPosDO.setCreationDate(now);
pmSmallPltPosDO.setLastUpdateDate(now);
pmSmallPltPosDO.setTenantId(organizationId);
// pmSmallPltPosDO.setObjectVersionNumber(1L);
SetPmCmdSmallPlt(pmSmallPltPosDO,resultPmProContProdAttrDO.get(),mscLineNo,organizationId);
pmSmallPltPosDOList.add(pmSmallPltPosDO);
}
}
}
}
//命令板坯表
public void SetPmCmdSlab(PmPdSlab pmPdSlabDO, Long organizationId) {
public void SetPmCmdSlab(PmPdSlab pmPdSlabDO, PmProContProdTtr pmProContProdTtr, Long organizationId) {
PmCmdSlab pmCmdSlabDO = new PmCmdSlab();
pmCmdSlabDO.setPonoSlabNo(pmPdSlabDO.getVirtualSlabNo());
pmCmdSlabDO.setTmpSlabNo(pmPdSlabDO.getVirtualSlabNo());
@ -3215,7 +3377,7 @@ public class SubController {
pmCmdSlabDO.setOrderNumInPlate(Long.valueOf(pmPdSlabDO.getOrderNumInPlate().intValue()));
pmCmdSlabDO.setOrderRemainDiv(pmPdSlabDO.getOrderRemainDiv());
pmCmdSlabDO.setMatDesignKind("S");
pmCmdSlabDO.setProdCodeHp("");//TODO 厚板品种代码 暂时默认为空
pmCmdSlabDO.setProdCodeHp(pmProContProdTtr.getProdCodeHp());
pmCmdSlabDO.setSgSign(pmPdSlabDO.getSgSign());
pmCmdSlabDO.setStNo(pmPdSlabDO.getStNo());
pmCmdSlabDO.setPreCleanSlabThick(pmPdSlabDO.getPreCleanSlabThick());
@ -3280,7 +3442,7 @@ public class SubController {
}
//命令大板表
public void SetPmCmdLargePlt(PmPdSlab pmPdSlabDO, GGrpCalRslt gGrpCalRslt, PmContMscTech pmContMscTechDO, Long organizationId) {
public void SetPmCmdLargePlt(PmPdSlab pmPdSlabDO, GGrpCalRslt gGrpCalRslt, PmContMscTech pmContMscTechDO, PmProContProdTtr pmProContProdTtr, Long organizationId) {
PmCmdLargePlt pmCmdLargePltDO = new PmCmdLargePlt();
pmCmdLargePltDO.setRollMode(pmContMscTechDO.getRollMode());
pmCmdLargePltDO.setHotRectifyFlag(String.valueOf(pmContMscTechDO.getHotChargeFlag()));
@ -3298,7 +3460,7 @@ public class SubController {
pmCmdLargePltDO.setMatDesignKind(pmPdSlabDO.getMatDesignKind());
pmCmdLargePltDO.setOrderNumInPlate(pmPdSlabDO.getOrderNumInPlate().longValue());
pmCmdLargePltDO.setTotSmallPlateNum(pmPdSlabDO.getTotSmallPlateNum().longValue());
pmCmdLargePltDO.setProdCodeHp("");//TODO 厚板品种代码 暂时默认为空
pmCmdLargePltDO.setProdCodeHp(pmProContProdTtr.getProdCodeHp());
pmCmdLargePltDO.setAdTypeCode(pmPdSlabDO.getAdTypeCode());
pmCmdLargePltDO.setAdModeCode(pmPdSlabDO.getAdModeCode());
pmCmdLargePltDO.setUltCode(pmPdSlabDO.getUltCode());

@ -416,21 +416,21 @@ public class SubServiceImpl implements SubService {
@Transactional(rollbackFor = Exception.class)
public void SaveData(SlabInfoDO p,List<PmPdSlab> pmPdSlabDOList, List<PmPdPlateCut> pmPdPlateCutDOList, List<PmPdBlockPos> pmPdBlockPosDOList, List<PmPdContSum> pmPdContSumDOList, List<PmSmallPltPos> pmSmallPltPosDOList, List<PmCmdSlab> pmCmdSlabDOList, List<PmCmdLargePlt> pmCmdLargePltDOList, List<PmCmdCont> pmCmdContDOList, List<PmCmdSmallPlt> pmCmdSmallPltDOList, List<PmSubHis> plistpmSubHisDO, List<PmSubOrd> plistpmSubOrdDO) {
// // 调用mm接口
// // 查询MM_SLAB 信息获取板坯信息
// PmPdSlabSplitDTO pmPdSlabSplitDTO = pmPdSlabRepository.selectMmSlabBySlabId(p.getSlabId(),p.getTenantId());
//
// // 查询板坯信息表。第一次查询可能无值
// PmPdSlabInfo pmPdSlabInfo = pmPdSlabInfoRepository.selectBySlabNo(p.getSlabNo(), p.getTenantId());
//
// if (pmPdSlabInfo == null) {
// pmPdSlabInfo = buildPmPdSlabInfo(pmPdSlabSplitDTO , p.getSlabNo() , p.getMscLineNo() , p.getTenantId());
// pmPdSlabInfoRepository.insertSelective(pmPdSlabInfo);
// System.out.println("pmPdSlabInfo表 保存成功");
// // 轧钢模块“在制品材料管理封锁事件接口"
// callMatStatusModify(pmPdSlabInfo);
// System.out.println("mm模块接口 调用成功");
// }
// 调用mm接口
// 查询MM_SLAB 信息获取板坯信息
PmPdSlabSplitDTO pmPdSlabSplitDTO = pmPdSlabRepository.selectMmSlabBySlabId(p.getSlabId(),p.getTenantId());
// 查询板坯信息表。第一次查询可能无值
PmPdSlabInfo pmPdSlabInfo = pmPdSlabInfoRepository.selectBySlabNo(p.getSlabNo(), p.getTenantId());
if (pmPdSlabInfo == null) {
pmPdSlabInfo = buildPmPdSlabInfo(pmPdSlabSplitDTO , p.getSlabNo() , p.getMscLineNo() , p.getTenantId());
pmPdSlabInfoRepository.insertSelective(pmPdSlabInfo);
System.out.println("pmPdSlabInfo表 保存成功");
// 轧钢模块“在制品材料管理封锁事件接口"
callMatStatusModify(pmPdSlabInfo);
System.out.println("mm模块接口 调用成功");
}
@ -443,42 +443,42 @@ public class SubServiceImpl implements SubService {
System.out.println("pmSubOrd表 保存成功");
}
//
// if(pmPdSlabDOList.size()>0){
// pmPdSlabRepository.batchInsertSelective(pmPdSlabDOList);
// System.out.println("PmPdSlab表 保存成功");
// }
// if(pmPdPlateCutDOList.size()>0){
// pmPdPlateCutRepository.batchInsertSelective(pmPdPlateCutDOList);
// System.out.println("PmPdPlateCut 大板粗切位置 保存成功");
// }
// if(pmPdBlockPosDOList.size()>0){
// pmPdBlockPosRepository.batchInsertSelective(pmPdBlockPosDOList);
// System.out.println("PmPdBlockPos 组合子板位置表 保存成功");
// }
// if(pmPdContSumDOList.size()>0){
// pmPdContSumRepository.batchInsertSelective(pmPdContSumDOList);
// System.out.println("PmPdContSum 合同总量表 保存成功");
// }
// if(pmSmallPltPosDOList.size()>0){
// pmSmallPltPosRepository.batchInsertSelective(pmSmallPltPosDOList);
// System.out.println("PmSmallPltPos 命令小板位置表 保存成功");
// }
// if(pmCmdSlabDOList.size()>0){
// pmCmdSlabRepository.batchInsertSelective(pmCmdSlabDOList);
// System.out.println("PmCmdSlab 保存成功");
// }
// if(pmCmdLargePltDOList.size()>0){
// pmCmdLargePltRepository.batchInsertSelective(pmCmdLargePltDOList);
// System.out.println("pmCmdLargePltDO 命令大板 保存成功");
// }
// if(pmCmdContDOList.size()>0){
// pmCmdContRepository.batchInsertSelective(pmCmdContDOList);
// System.out.println("PmCmdCont 命令参数 保存成功");
// }
// if(pmCmdSmallPltDOList.size()>0){
// pmCmdSmallPltRepository.batchInsertSelective(pmCmdSmallPltDOList);
// System.out.println("PmCmdSmallPlt 命令小板表 保存成功");
// }
if(pmPdSlabDOList.size()>0){
pmPdSlabRepository.batchInsertSelective(pmPdSlabDOList);
System.out.println("PmPdSlab表 保存成功");
}
if(pmPdPlateCutDOList.size()>0){
pmPdPlateCutRepository.batchInsertSelective(pmPdPlateCutDOList);
System.out.println("PmPdPlateCut 大板粗切位置 保存成功");
}
if(pmPdBlockPosDOList.size()>0){
pmPdBlockPosRepository.batchInsertSelective(pmPdBlockPosDOList);
System.out.println("PmPdBlockPos 组合子板位置表 保存成功");
}
if(pmPdContSumDOList.size()>0){
pmPdContSumRepository.batchInsertSelective(pmPdContSumDOList);
System.out.println("PmPdContSum 合同总量表 保存成功");
}
if(pmSmallPltPosDOList.size()>0){
pmSmallPltPosRepository.batchInsertSelective(pmSmallPltPosDOList);
System.out.println("PmSmallPltPos 命令小板位置表 保存成功");
}
if(pmCmdSlabDOList.size()>0){
pmCmdSlabRepository.batchInsertSelective(pmCmdSlabDOList);
System.out.println("PmCmdSlab 保存成功");
}
if(pmCmdLargePltDOList.size()>0){
pmCmdLargePltRepository.batchInsertSelective(pmCmdLargePltDOList);
System.out.println("pmCmdLargePltDO 命令大板 保存成功");
}
if(pmCmdContDOList.size()>0){
pmCmdContRepository.batchInsertSelective(pmCmdContDOList);
System.out.println("PmCmdCont 命令参数 保存成功");
}
if(pmCmdSmallPltDOList.size()>0){
pmCmdSmallPltRepository.batchInsertSelective(pmCmdSmallPltDOList);
System.out.println("PmCmdSmallPlt 命令小板表 保存成功");
}
}
/**

@ -0,0 +1,54 @@
package com.xisc.pm.infra.job;
import com.xisc.pm.domain.entity.PmSubLog;
import com.xisc.pm.domain.repository.PmSubLogRepository;
import org.hzero.boot.scheduler.infra.annotation.JobHandler;
import org.hzero.boot.scheduler.infra.enums.ReturnT;
import org.hzero.boot.scheduler.infra.handler.IJobHandler;
import org.hzero.boot.scheduler.infra.tool.SchedulerTool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.util.Map;
/**
*
*
* @author
* @date
* @description
*/
@JobHandler("SubDataJobHander")
public class SubDataJobHander implements IJobHandler {
@Autowired
private PmSubLogRepository pmSubLogRepository;
private static final String TENANT_ID = "tenantId";
@Override
@Transactional(rollbackFor = Exception.class)
public ReturnT execute(Map<String, String> map, SchedulerTool tool) {
tool.info("测试定时任务执行开始");
// 校验
Long tenantId;
try {
tenantId = Long.parseLong(map.get(TENANT_ID));
} catch (Exception e) {
tool.info("=====参数有误: 请维护租户ID,且只能维护整数类型, 不执行本次任务=====");
return ReturnT.FAILURE;
}
PmSubLog pmSubLog = new PmSubLog();
pmSubLog.setSubDate(new java.util.Date());
pmSubLog.setSlabNo("123456789");
pmSubLog.setSubMode(1L);
pmSubLog.setSubRslt("成功");
pmSubLog.setSubLog("测试定时任务");
pmSubLog.setTenantId(tenantId);
pmSubLogRepository.insertSelective(pmSubLog);
tool.info("测试定时任务执行结束");
return ReturnT.SUCCESS;
}
}

@ -97,12 +97,12 @@ hzero:
service-name: ${HZERO_SERVICE_NAME:xisc-zb}
scheduler:
auto-register: ${SCHEDULER_AUTO_REGISTER:true}
executor-code: ${SCHEDULER_EXECUTOR_CODE:PM_EXECUTOR}
executor-code: ${SCHEDULER_EXECUTOR_CODE:ZB_EXECUTOR}
upload-log: false
#seata 配置
seata:
enabled: ${SEATA_ENABLED:false}
enabled: ${SEATA_ENABLED:true}
# 名字随意取但是要和下面的vgroup-mapping对应
tx-service-group: xisc_tx_group
rm:

Loading…
Cancel
Save