2025-02-17

main
sunhao 4 months ago
parent db3d3124c6
commit de859d312a

@ -156,25 +156,25 @@ public class SubController {
//region ***配置项参数***
//不可自动组板订单信息
private static List<PmIrsubableContDO> plistpmIrsubableContDO=new ArrayList<>();
private static List<PmIrsubableContDO> plistpmIrsubableContDO = new ArrayList<>();
//不可自动组板板坯信息
private static List<PmIrsubableSlabDO> plistpmIrsubableSlabDO=new ArrayList<>();
private static List<PmIrsubableSlabDO> plistpmIrsubableSlabDO = new ArrayList<>();
//自动替代配置参数
private static List<PmAutoSubSettingDO> plistpmAutoSubSettingDO=new ArrayList<>();
private static List<PmAutoSubSettingDO> plistpmAutoSubSettingDO = new ArrayList<>();
//钢种信息配置
private static List<PmRetainStDO> plistpmRetainStDO=new ArrayList<>();
private static List<PmRetainStDO> plistpmRetainStDO = new ArrayList<>();
//仓库信息配置
private static List<PmRetainStackDO> plistpmRetainStackDO=new ArrayList<>();
private static List<PmRetainStackDO> plistpmRetainStackDO = new ArrayList<>();
//自动替代日志
private static List<PmSubLogDO> plistpmSubLogDO=new ArrayList<>();
private static List<PmSubLogDO> plistpmSubLogDO = new ArrayList<>();
//记录已被使用的订单号
private static List<GPreOrder> plistOrdHis=new ArrayList<>();
private static List<GPreOrder> plistOrdHis = new ArrayList<>();
//endregion
@ -197,7 +197,7 @@ public class SubController {
System.out.println(ltInt.get(i));
}
JsonData xx= new JsonData();
JsonData xx = new JsonData();
xx.setCode(0);
xx.setData(ltInt);
xx.setMsg("成功");
@ -229,7 +229,7 @@ public class SubController {
logger.info("***初次分组数量*** " + gltGrpOrderFir.size());
//被使用的订单数据实例化
plistOrdHis=new ArrayList<>();
plistOrdHis = new ArrayList<>();
//循环板坯
plistSlab.forEach(p -> {
@ -238,31 +238,31 @@ public class SubController {
// 判断板坯的长度是否在plistpmAutoSubSettingDO配置的范围内
if (p.getSlabActLen().compareTo(plistpmAutoSubSettingDO.get(0).getMatLenMin()) < 0 && p.getSlabActLen().compareTo(plistpmAutoSubSettingDO.get(0).getMatLenMax()) > 0) {
logger.info("***板坯信息被排除:{} 长度不在范围内 ", p.getSlabNo() );
logger.info("***板坯信息被排除:{} 长度不在范围内 ", p.getSlabNo());
return;
}
// 判断板坯的宽度是否在plistpmAutoSubSettingDO配置的范围内
if (p.getSlabActWid().compareTo(plistpmAutoSubSettingDO.get(0).getMatWidthMin()) < 0 && p.getSlabActWid().compareTo(plistpmAutoSubSettingDO.get(0).getMatWidthMax()) > 0) {
logger.info("***板坯信息被排除:{} 宽度不在范围内 ", p.getSlabNo() );
logger.info("***板坯信息被排除:{} 宽度不在范围内 ", p.getSlabNo());
return;
}
// 判断板坯的厚度是否在plistpmAutoSubSettingDO配置的范围内
if (p.getSlabActThk().compareTo(plistpmAutoSubSettingDO.get(0).getMatThickMin()) < 0 && p.getSlabActThk().compareTo(plistpmAutoSubSettingDO.get(0).getMatThickMax()) > 0) {
logger.info("***板坯信息被排除:{} 厚度不在范围内 ", p.getSlabNo() );
logger.info("***板坯信息被排除:{} 厚度不在范围内 ", p.getSlabNo());
return;
}
//判断plistpmIrsubableSlabDO是否包含P.SlabNO范围内
if (plistpmIrsubableSlabDO.stream().anyMatch(x -> x.getSlabNo().equals(p.getSlabNo()))) {
logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo() );
logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo());
return;
}
//判断plistpmRetainStDO是否包含P的钢种判断这个板坯的钢种是否可组板
if (plistpmRetainStDO.stream().anyMatch(x -> x.getStNo().equals(p.getStNo()))) {
logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo() );
logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo());
return;
}
@ -291,19 +291,20 @@ public class SubController {
SetGroupCalRslt(p);
//存储数据,组板结果
SaveHisData(p);
logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size());
}
if (gltSelGGrpCalRslt.size() > 0) {
now = new Date();
//数据整理
SetSaveDate(p);
//开启事务
TransactionStatus transactionStatus = transactionService.begin();
try {
//存储数据,组板结果
SaveHisData(p);
//保存数据
SaveData();
// bOffTaskLineService.saveOffTask(bPlanHeadAndLineVos);
//bOffTaskLineService.saveOffTask(bPlanHeadAndLineVos);
transactionService.commit(transactionStatus);
} catch (Exception e) {
logger.error("保存事务回滚:" + p.getSlabNo(), e);
@ -330,12 +331,13 @@ public class SubController {
//存储数据,组板结果
plistpmSubHisDO.forEach(e -> {
String strMaxSeq = subService.GetMaxSeq(SInfo.getPono());
//TODO:未获取轧制命令最大序号
int intSeq = 1;//Integer.parseInt(subService.GetMaxSeq().substring(subService.GetMaxSeq().length() - 4));
int intSeq = Integer.parseInt(strMaxSeq.substring(strMaxSeq.length() - 3));
String virtualSlabNo = generateVirtualSlabNoSave(e.getVirtualSlabNo(), intSeq);
String strGuid = e.getVirtualSlabNo();
String strGuid = e.getRelKey();
//获取虚拟板坯号
e.setVirtualSlabNo(virtualSlabNo);
@ -343,7 +345,7 @@ public class SubController {
subService.InsertPmSubHisDO(e);
//删选plistpmSubOrdDO中虚拟板坯号等于strGuid的信息
plistpmSubOrdDO.stream()
.filter(f -> !f.getVirtualSlabNo().equals(strGuid))
.filter(f -> !f.getRelKey().equals(strGuid))
.collect(Collectors.toList()).forEach(m -> {
m.setVirtualSlabNo(virtualSlabNo);
subService.InsertPmSubOrdDO(m);
@ -623,8 +625,7 @@ public class SubController {
logger.info("30:订单合约信息信息:" + plistQdToPoOrderDO.size());
logger.info("获取基础数据完成");
if (plistpmAutoSubSettingDO.size()>0)
{
if (plistpmAutoSubSettingDO.size() > 0) {
logger.info("配置信息-》 是否启动 {}", plistpmAutoSubSettingDO.get(0).getIsStartFlag());
logger.info("配置信息-》 启动时间范围 {}~{}", plistpmAutoSubSettingDO.get(0).getStartTime(), plistpmAutoSubSettingDO.get(0).getEndTime());
logger.info("配置信息-》 优先模式 {}", plistpmAutoSubSettingDO.get(0).getPriMode());
@ -659,9 +660,9 @@ public class SubController {
public void SetPreData() {
//实例化订单列表
gltOrder =new ArrayList<>();
gltOrder = new ArrayList<>();
//实例化订单分组
gltGrpOrderFir=new ArrayList<>();
gltGrpOrderFir = new ArrayList<>();
//订单数据处理
SetOrderLackData();
@ -1362,10 +1363,9 @@ public class SubController {
&& finalPpcpa.getOrderWidth().intValue() <= p.getOrderWidthMax().intValue()
&& p.getOrderThickMin().intValue() <= finalPpcpa.getOrderThick().intValue()
&& finalPpcpa.getOrderThick().intValue() <= p.getOrderThickMax().intValue()
&& p.getDelivyDateFrom().compareTo(finalPpcpa.getDelivyDate())<= 0
&& finalPpcpa.getDelivyDate().compareTo(p.getDelivyDateTo())<=0).count()<=0)
{
logger.info("订单:{} 不可自动组板,尺寸厚度{},宽度{},交货期{} 不在范围内", i.getOrderNo(),finalPpcpa.getOrderThick(), finalPpcpa.getOrderWidth(),new SimpleDateFormat("yyyy-MM-dd").format(finalPpcpa.getDelivyDate()));
&& p.getDelivyDateFrom().compareTo(finalPpcpa.getDelivyDate()) <= 0
&& finalPpcpa.getDelivyDate().compareTo(p.getDelivyDateTo()) <= 0).count() <= 0) {
logger.info("订单:{} 不可自动组板,尺寸厚度{},宽度{},交货期{} 不在范围内", i.getOrderNo(), finalPpcpa.getOrderThick(), finalPpcpa.getOrderWidth(), new SimpleDateFormat("yyyy-MM-dd").format(finalPpcpa.getDelivyDate()));
return;
}
@ -1504,7 +1504,7 @@ public class SubController {
GGCR.setCal_Len(intMaxLen);
GGCR.setLtInfoGPreOrder(e.getLtInfoGPreOrder());
gltGGrpCalRslt.add(GGCR);
}catch (Exception ex){
} catch (Exception ex) {
logger.info("***计算结果异常:" + ex.getMessage());
}
});
@ -1539,7 +1539,7 @@ public class SubController {
}
//被使用过的订单ID排除在外
if (plistOrdHis.stream().filter(f -> f.getIDValue()==e.getIDValue()).count()>0) {
if (plistOrdHis.stream().filter(f -> f.getIDValue() == e.getIDValue()).count() > 0) {
return;
}
@ -1807,7 +1807,7 @@ public class SubController {
//数据可用
p.setIntUseFlg(1);
} catch (Exception e){
} catch (Exception e) {
log.error("new2", e);
return;
}
@ -1909,6 +1909,7 @@ public class SubController {
// 生成虚拟板坯号
pmSubOrdDO.setVirtualSlabNo(virtualSlabNo); // 虚拟板坯号
pmSubOrdDO.setRelKey(virtualSlabNo); // 关系号
pmSubOrdDO.setSlabNo(SInfo.getSlabNo()); // 板坯号
// 手动为每个字段赋值
@ -1988,14 +1989,13 @@ public class SubController {
}
// 生成虚拟板坯号的方法保存
private String generateVirtualSlabNoSave(String pono ,int i) {
private String generateVirtualSlabNoSave(String pono, int i) {
return pono + "S9" + String.format("%03d", i+1);
return pono + "S9" + String.format("%03d", i + 1);
}
//设置保存数据
public void SetSaveDate(SlabInfoDO SInfo) {
SetPmPdSlab(SInfo);//组板板坯表 命令板坯表 命令大板表
@ -2054,20 +2054,20 @@ public class SubController {
String erpUtSpec2 = "";
String erpUtSpec3 = "";
if (resultQdToPoOrderDO.isPresent()) {
erpUtSpec1 = nvl(resultQdToPoOrderDO.get().getErpUtSpec1(),"");
erpUtSpec2 = nvl(resultQdToPoOrderDO.get().getErpUtSpec2(),"");
erpUtSpec3 = nvl(resultQdToPoOrderDO.get().getErpUtSpec3(),"");
if(!erpUtSpec1.isEmpty()){
erpUtSpec1 = nvl(resultQdToPoOrderDO.get().getErpUtSpec1(), "");
erpUtSpec2 = nvl(resultQdToPoOrderDO.get().getErpUtSpec2(), "");
erpUtSpec3 = nvl(resultQdToPoOrderDO.get().getErpUtSpec3(), "");
if (!erpUtSpec1.isEmpty()) {
if (!ultDetectMethodCodeBuilder.toString().contains(erpUtSpec1)) {
ultDetectMethodCodeBuilder.append(erpUtSpec1).append("-");
}
}
if(!erpUtSpec2.isEmpty()){
if (!erpUtSpec2.isEmpty()) {
if (!ultDetectMethodCodeBuilder.toString().contains(erpUtSpec2)) {
ultDetectMethodCodeBuilder.append(erpUtSpec2).append("-");
}
}
if(!erpUtSpec3.isEmpty()){
if (!erpUtSpec3.isEmpty()) {
if (!ultDetectMethodCodeBuilder.toString().contains(erpUtSpec3)) {
ultDetectMethodCodeBuilder.append(erpUtSpec3).append("-");
}
@ -2165,7 +2165,7 @@ public class SubController {
Long slabPdQty = plistPmPdSlabInfoDO.stream()
.filter(item -> item != null && ggcr != null && ggcr.getSlabNo() != null && ggcr.getSlabNo().equals(item.getSlabNo()))
.count();
if(slabPdQty > 0){
if (slabPdQty > 0) {
Optional<PmPdSlabInfoDO> resultPmPdSlabInfoDO = plistPmPdSlabInfoDO.stream()
.filter(item -> ggcr.getSlabNo().equals(item.getSlabNo()))
.findFirst();
@ -2396,7 +2396,7 @@ public class SubController {
Long slabPdQty = plistPmPdSlabInfoDO.stream()
.filter(item -> item != null && pmPdSlabDO != null && pmPdSlabDO.getSlabNo() != null && pmPdSlabDO.getSlabNo().equals(item.getSlabNo()))
.count();
if(slabPdQty>0){
if (slabPdQty > 0) {
Optional<PmPdSlabInfoDO> resultPmPdSlabInfoDO = plistPmPdSlabInfoDO.stream()
.filter(item -> pmPdSlabDO.getSlabNo().equals(item.getSlabNo()))
.findFirst();
@ -2611,19 +2611,19 @@ public class SubController {
pmCmdContDO.setHeadCut(pmPdSlabDOItem.get().getHeadCut().intValue());
pmCmdContDO.setTailCut(pmPdSlabDOItem.get().getTailCut().intValue());
pmCmdContDO.setCutModeCode(pmContMscTechDOItem.get().getAdModeCode());
if(pmContMscTechDOItem.get().getGFlag() != null){
if (pmContMscTechDOItem.get().getGFlag() != null) {
pmCmdContDO.setGFlag(String.valueOf(pmContMscTechDOItem.get().getGFlag()));
}
if(pmContMscTechDOItem.get().getCsFlag() != null){
if (pmContMscTechDOItem.get().getCsFlag() != null) {
pmCmdContDO.setCsFlag(String.valueOf(pmContMscTechDOItem.get().getCsFlag()));
}
if(pmContMscTechDOItem.get().getDssFlag() != null){
if (pmContMscTechDOItem.get().getDssFlag() != null) {
pmCmdContDO.setDssFlag(String.valueOf(pmContMscTechDOItem.get().getDssFlag()));
}
if(pmContMscTechDOItem.get().getDsFlag() != null){
if (pmContMscTechDOItem.get().getDsFlag() != null) {
pmCmdContDO.setDsFlag(String.valueOf(pmContMscTechDOItem.get().getDsFlag()));
}
if(pmContMscTechDOItem.get().getSsFlag() != null){
if (pmContMscTechDOItem.get().getSsFlag() != null) {
pmCmdContDO.setSsFlag(String.valueOf(pmContMscTechDOItem.get().getSsFlag()));
}
pmCmdContDO.setHeatTreatMode(pmContMscTechDOItem.get().getHeatTreatMode());

@ -141,4 +141,6 @@ public interface SubMapper extends BaseMapper<Map> {
BigDecimal getMaxPmCmdContId();
void insertPmCmdCont(PmCmdContDO pmCmdContDO);
String GetMaxSeq(String pono);
}

@ -119,4 +119,6 @@ public interface SubService {
void batchInsertPmCmdSmallPlt(List<PmCmdSmallPltDO> pmCmdSmallPltDOList);
void batchInsertPmCmdCont(List<PmCmdContDO> pmCmdContDOList);
String GetMaxSeq(String pono);
}

@ -355,5 +355,10 @@ public class SubServiceImpl implements SubService {
}
}
@Override
public String GetMaxSeq(String pono) {
return subMapper.GetMaxSeq(pono);
}
}

@ -277,6 +277,12 @@
</select>
<select id="GetMaxSeq" resultType="java.lang.String" parameterType="java.lang.String">
SELECT NVL(MAX(VIRTUAL_SLAB_NO), 0)
FROM PM_PD_SLAB
WHERE PONO=#{pono}
</select>
<insert id="InsertPmSubOrdDO" parameterType="net.xdclass.shopmanager.model.PmSubOrdDO" keyProperty="id">
INSERT INTO PM_SUB_ORD (ORDER_NO, VIRTUAL_SLAB_NO, SG_SIGN, ST_NO, ORDER_THICK, ORDER_WIDTH,
LEN_AIM, POS_X, POS_Y, DELIVY_DATE, AXIS_ORD, LACK_NUM, OVER_NUM,

Loading…
Cancel
Save