抛合同接口传参修改 添加日志记录

main
BKGY_MYT 4 weeks ago
parent a8aacbd692
commit 696716f672

@ -331,6 +331,13 @@ public class SubController {
public JsonData SubData( PmSubHis pmSubHis, @PathVariable Long organizationId) {
SecurityTokenHelper.validTokenIgnoreInsert(pmSubHis);
String strSlab = pmSubHis.getSlabNo();
long subMode = 1;
if (strSlab == null || strSlab == "") {
subMode = 2;
}
long finalSubMode = subMode;
SubParams subParams = new SubParams();
subParams.setSlabNo(strSlab);
//测试阶段需要指定板坯号
@ -346,6 +353,10 @@ public class SubController {
logger.info("***初次分组数量*** " + gltGrpOrderFir.size());
//执行日志保存
subService.saveSubLog("初次分组数量", finalSubMode, "成功", String.valueOf(gltGrpOrderFir.size()), organizationId);
//被使用的订单数据实例化
plistOrdHis = new ArrayList<>();
@ -353,34 +364,53 @@ public class SubController {
plistSlab.forEach(p -> {
logger.info("*************板坯开始{}************* ", p.getSlabNo());
logger.info("***板坯信息:{} 厚宽长:{}*{}*{} ", p.getSlabNo(), p.getSlabActThk(), p.getSlabActWid(), p.getSlabActLen());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "板坯信息 厚宽长:" + p.getSlabActThk() + "*" + p.getSlabActWid() + "*" + p.getSlabActLen(), organizationId);
// 判断板坯的长度是否在plistpmAutoSubSettingDO配置的范围内
if (p.getSlabActLen().compareTo(plistpmAutoSubSettingDO.get(0).getMatLenMin()) < 0 && p.getSlabActLen().compareTo(plistpmAutoSubSettingDO.get(0).getMatLenMax()) > 0) {
logger.info("***板坯信息被排除:{} 长度不在范围内 ", p.getSlabNo());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 长度不在范围内", organizationId);
return;
}
// 判断板坯的宽度是否在plistpmAutoSubSettingDO配置的范围内
if (p.getSlabActWid().compareTo(plistpmAutoSubSettingDO.get(0).getMatWidthMin()) < 0 && p.getSlabActWid().compareTo(plistpmAutoSubSettingDO.get(0).getMatWidthMax()) > 0) {
logger.info("***板坯信息被排除:{} 宽度不在范围内 ", p.getSlabNo());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 宽度不在范围内", organizationId);
return;
}
// 判断板坯的厚度是否在plistpmAutoSubSettingDO配置的范围内
if (p.getSlabActThk().compareTo(plistpmAutoSubSettingDO.get(0).getMatThickMin()) < 0 && p.getSlabActThk().compareTo(plistpmAutoSubSettingDO.get(0).getMatThickMax()) > 0) {
logger.info("***板坯信息被排除:{} 厚度不在范围内 ", p.getSlabNo());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 厚度不在范围内", organizationId);
return;
}
//判断plistpmIrsubableSlabDO是否包含P.SlabNO范围内
if (plistpmIrsubableSlabDO.stream().anyMatch(x -> x.getSlabNo().equals(p.getSlabNo()))) {
logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 判断plistpmIrsubableSlabDO是否包含P.SlabNO范围内 不可组板", organizationId);
return;
}
//判断plistpmRetainStDO是否包含P的钢种判断这个板坯的钢种是否可组板
if (plistpmRetainStDO.stream().anyMatch(x -> x.getStNo().equals(p.getStNo()))) {
logger.info("***板坯信息被排除:{} 不可组板 ", p.getSlabNo());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯信息被排除 原因 判断plistpmRetainStDO是否包含P的钢种判断这个板坯的钢种是否可组板 不可组板", organizationId);
return;
}
@ -393,8 +423,13 @@ public class SubController {
SetGrpConBinDataBySlab(p);
logger.info("***二次分组1数量*** " + gltGCalGrp.size());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "二次分组1数量" + gltGCalGrp.size(), organizationId);
logger.info("***二次分组21数量*** " + gltGCal2Grp.size());
logger.info("***二次分组2数量*** " + gltGCal2Grp.size());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "二次分组2数量" + gltGCal2Grp.size(), organizationId);
gltGCalGrp.addAll(gltGCal2Grp);
@ -445,32 +480,46 @@ public class SubController {
SetGroupCalRslt(p);
logger.info("所有结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size());
logger.info("选择结果数据板坯号:{};数量:{}", p.getSlabNo(), gltSelGGrpCalRslt.size());
logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltGGrpCalRslt.size());
logger.info("结果数据板坯号:{};数量:{}", p.getSlabNo(), gltSelGGrpCalRslt.size());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "结果数据数量1" + gltGGrpCalRslt.size(), organizationId);
subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "结果数据数量2" + gltSelGGrpCalRslt.size(), organizationId);
}
if (gltSelGGrpCalRslt.size() > 0) {
now = new Date();
//存储数据,组板结果
SaveHisData(p);
//数据整理
SetSaveDate(p, organizationId);
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "数据整理完成", organizationId);
//开启事务
//TransactionStatus transactionStatus = transactionService.begin();
try {
//保存数据
SaveData(p, organizationId);
//transactionService.commit(transactionStatus);
} catch (Exception e) {
logger.error("保存事务回滚:" + p.getSlabNo(), e);
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "数据保存失败" + e, organizationId);
//回滚事务
//transactionService.rollback(transactionStatus);
}
}
// if (gltSelGGrpCalRslt.size() > 0) {
// now = new Date();
// //存储数据,组板结果
// SaveHisData(p);
// //数据整理
// SetSaveDate(p,organizationId);
// //开启事务
// //TransactionStatus transactionStatus = transactionService.begin();
// try {
// //保存数据
// SaveData(p,organizationId);
// //transactionService.commit(transactionStatus);
// } catch (Exception e) {
// logger.error("保存事务回滚:" + p.getSlabNo(), e);
// //回滚事务
// //transactionService.rollback(transactionStatus);
// }
// }
} catch (Exception e) {
logger.error("板坯报错:" + p.getSlabNo(), e);
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "失败", "板坯报错" + e, organizationId);
}
logger.info("*************板坯结束{}************* ", p.getSlabNo());
//执行日志保存
subService.saveSubLog(p.getSlabNo(), finalSubMode, "成功", "板坯结束", organizationId);
logger.info("");
}
@ -558,7 +607,6 @@ public class SubController {
public void GetDataInfo(SubParams subParams) {
logger.info("*****开始获取数据******");
//region ***多线程获取基础数据***
@ -886,7 +934,6 @@ public class SubController {
//压缩比 Compression ratio
//宽展比 Wide ratio
//GCG.getLtInfoGPreOrder().stream().filter(e->e.)
//最大宽度
@ -900,14 +947,12 @@ public class SubController {
try {
//同钢种判断
if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo()))
{
if (!SInfo.getStNo().equals(f.getInfoPmContMscTechDO().getStNo())) {
return;
}
//产线相同
if (!SInfo.getMscLineNo().equals(f.getInfoPmContMscTechDO().getMscLineNo()))
{
if (!SInfo.getMscLineNo().equals(f.getInfoPmContMscTechDO().getMscLineNo())) {
return;
}
@ -995,18 +1040,15 @@ public class SubController {
&& p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
&& p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
)) {
if (GCG.getLtInfoGPreOrder().get(0)==null)
{
if (GCG.getLtInfoGPreOrder().get(0) == null) {
}
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO()==null)
{
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO() == null) {
}
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()==null)
{
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType() == null) {
}
@ -1047,8 +1089,7 @@ public class SubController {
String strWithSideFlag = "C";
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark() == null
|| GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals(""))
{
|| GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals("")) {
strWithSideFlag = "C";
} else {
strWithSideFlag = GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark();
@ -1125,8 +1166,7 @@ public class SubController {
f.getLtInfoGPreOrder().forEach(j -> {
//排己
if (i.getIDValue()==j.getIDValue())
{
if (i.getIDValue() == j.getIDValue()) {
return;
}
@ -1135,8 +1175,7 @@ public class SubController {
GPreOrder GPO2 = j;
//组合数据的数量,提升效率,大于二十
if(ltInfoOrder.stream().filter(m->m.equals(GPO1.getOrderNo()+"_"+GPO2.getOrderNo())).count()>20)
{
if (ltInfoOrder.stream().filter(m -> m.equals(GPO1.getOrderNo() + "_" + GPO2.getOrderNo())).count() > 20) {
return;
}
@ -1299,18 +1338,15 @@ public class SubController {
&& p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth + maxAddWidth.orElse(0))) >= 0
)) {
if (GCG.getLtInfoGPreOrder().get(0)==null)
{
if (GCG.getLtInfoGPreOrder().get(0) == null) {
}
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO()==null)
{
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO() == null) {
}
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()==null)
{
if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType() == null) {
}
@ -2021,8 +2057,7 @@ public class SubController {
if (plistPmContMscTechDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo())).count() > 0) {
// 可能抛出异常的代码
pcmt = plistPmContMscTechDO.stream().filter(p -> p.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo()));
if (plistQdToPoOrderDO.stream().anyMatch(e ->e.getOrderNo().equals(i.getOrderNo())))
{
if (plistQdToPoOrderDO.stream().anyMatch(e -> e.getOrderNo().equals(i.getOrderNo()))) {
qtpo = plistQdToPoOrderDO.stream().filter(e -> e.getOrderNo().equals(i.getOrderNo())).findFirst().orElseThrow(() -> new NoSuchElementException("No PmContMscTechDO found with name Charlie " + i.getOrderNo()));
SetAllOrder(i, ppcpa, pcmt, qtpo);
@ -2179,8 +2214,7 @@ public class SubController {
try {
//排己
if(e.getIDValue()==f.getIDValue())
{
if (e.getIDValue() == f.getIDValue()) {
return;
}
//e和f的宽度差绝对值小于500宽度合小于4980厚度相同
@ -2278,8 +2312,7 @@ public class SubController {
}
//测试代码
if (e.getOrderNo()=="52500096071" )
{
if (e.getOrderNo() == "52500096071") {
}
ltOrder.add(e.getOrderNo());//添加订单号
@ -2431,8 +2464,7 @@ public class SubController {
int intTrimWid = 0;
String strWithSideFlag = "C";
if (p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark() == null
|| p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals(""))
{
|| p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals("")) {
strWithSideFlag = "C";
} else {
strWithSideFlag = p.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark();
@ -2562,7 +2594,6 @@ public class SubController {
}
BigDecimal slabVolume = SInfo.getSlabActThk()
.multiply(SInfo.getRemWid())
.multiply(BigDecimal.valueOf(p.getVirtualSlab_Len()));
@ -2748,11 +2779,9 @@ public class SubController {
AtomicInteger index = new AtomicInteger(0);
AtomicInteger intX = new AtomicInteger(maxRate.getHead_Len());
boolean Firstflag = true;
for(int m = 0; m < maxRate.getLtActInfoGPreOrder().size(); m++)
{
for (int m = 0; m < maxRate.getLtActInfoGPreOrder().size(); m++) {
GPreOrder gPreOrder = maxRate.getLtActInfoGPreOrder().get(m);
if (gPreOrder.getCombinationFlag()==1)
{
if (gPreOrder.getCombinationFlag() == 1) {
BigDecimal intY = BigDecimal.valueOf(0);
for (int i = 0; i < gPreOrder.getLtInfoCombGPreOrder().size(); i++) {
@ -3509,6 +3538,7 @@ public class SubController {
public void SetPmSmallPltPos(String mscLineNo, Long organizationId) {
for (int i = 0; i < gltSelGGrpCalRslt.size(); i++) {
GGrpCalRslt ggcr = gltSelGGrpCalRslt.get(i);
Integer smallPlateNum = 0;
for (int j = 0; j < ggcr.getLtActInfoGPreOrder().size(); j++) {
if (ggcr.getLtActInfoGPreOrder().get(j).getCombinationFlag() == 1) {
for (int k = 0; k < ggcr.getLtActInfoGPreOrder().get(j).getLtInfoCombGPreOrder().size(); k++) {
@ -3525,7 +3555,7 @@ public class SubController {
if (resultPmProContProdAttrDO.get().getTrimCode().equals("0")) {
pmSmallPltPosDO.setSmallPlateDivNo("000");
} else {
pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[j]);
pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[smallPlateNum]);
}
pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j + 1));
pmSmallPltPosDO.setPickModeWidDir(Long.valueOf(k + 1));
@ -3550,6 +3580,7 @@ public class SubController {
SetPmCmdSmallPlt(pmSmallPltPosDO, resultPmProContProdAttrDO.get(), mscLineNo, organizationId);
pmSmallPltPosDOList.add(pmSmallPltPosDO);
smallPlateNum += 1;
}
} else {
GPreOrder gpo = ggcr.getLtActInfoGPreOrder().get(j);
@ -3566,7 +3597,7 @@ public class SubController {
if (resultPmProContProdAttrDO.get().getTrimCode().equals("0")) {
pmSmallPltPosDO.setSmallPlateDivNo("000");
} else {
pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[j]);
pmSmallPltPosDO.setSmallPlateDivNo(SMALL_PLATE_DIV_NO[smallPlateNum]);
}
pmSmallPltPosDO.setPickModeLenDir(Long.valueOf(j + 1));//TODO 取板方式 长度方向 列数累加
pmSmallPltPosDO.setPickModeWidDir(1L);//TODO 取板方式 宽度方向 第一行
@ -3591,6 +3622,7 @@ public class SubController {
SetPmCmdSmallPlt(pmSmallPltPosDO, resultPmProContProdAttrDO.get(), mscLineNo, organizationId);
pmSmallPltPosDOList.add(pmSmallPltPosDO);
smallPlateNum += 1;
}
}
}

@ -126,6 +126,8 @@ public interface SubService {
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, List<PmPdRecDTO> pmPdRecDTOList, Long organizationId);
void saveSubLog(String slabNo, long subMode, String subRslt, String subLog, Long organizationId);
// void SaveData(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);
}

@ -91,6 +91,9 @@ public class SubServiceImpl implements SubService {
@Autowired
private PmProContRepository pmProContRepository;
@Autowired
private PmSubLogRepository pmSubLogRepository;
@Autowired
protected EventClient eventClient;
@ -552,6 +555,18 @@ public class SubServiceImpl implements SubService {
}
@Override
public void saveSubLog(String slabNo, long subMode, String subRslt, String subLog, Long organizationId) {
PmSubLog pmSubLog = new PmSubLog();
pmSubLog.setSubDate(new java.util.Date());
pmSubLog.setSlabNo(slabNo);
pmSubLog.setSubMode(subMode);
pmSubLog.setSubRslt(subRslt);
pmSubLog.setSubLog(subLog);
pmSubLog.setTenantId(organizationId);
pmSubLogRepository.insertSelective(pmSubLog);
}
public void zbCtEventRec(Long organizationId, List<PmPdSlab> pmPdSlabDOList, List<PmCmdLargePlt> pmCmdLargePltDOList, List<PmCmdSlab> pmCmdSlabDOList, List<PmSmallPltPos> pmSmallPltPosDOList) {
for (PmPdSlab pmPdSlab : pmPdSlabDOList) {
List<PmSmallPltPos> smallPltPosList = pmSmallPltPosDOList.stream()
@ -570,11 +585,11 @@ public class SubServiceImpl implements SubService {
// 虚拟板坯维度
boardEndEventList.add(new ProContBoardEndDTO(axisPmProCont.getOrderNo()).setMatNo(pmPdSlab.getVirtualSlabNo())
.setLen(pmPdSlab.getPreCleanSlabLen()).setMoMatNo(null)
.setLen(pmPdSlab.getPreCleanSlabLen()).setMoMatNo(pmPdSlab.getSlabNo())
.setMscLineNo(pmPdSlab.getMscLineNo())
.setPdMatStatus(Constants.PdStatusHp.PD_STATUS_HP_12).setPpFlag(PdProdFlag.VIRTUAL_SLAB.getCode())
.setThk(slabList.get(0).getMoldThick())
.setWid(slabList.get(0).getMoldWid())
.setThk(pmPdSlab.getPreCleanSlabThick())
.setWid(pmPdSlab.getPreCleanSlabWidth())
.setWgt(pmPdSlab.getPreCleanSlabWt())
.setWholeBacklogCode(axisPmProCont.getWholeBacklogCode())
.setStNo(axisPmProCont.getStNo())
@ -584,7 +599,7 @@ public class SubServiceImpl implements SubService {
BigDecimal weight = largePltList.get(0).getRollAimLen().multiply(largePltList.get(0).getRollAimThick()).multiply(largePltList.get(0).getRollAimWidth()).multiply(new BigDecimal(7.85)).divide(new BigDecimal(1000000000), PmPlateConstants.WT_SCALE, RoundingMode.HALF_UP);
// 大板维度
boardEndEventList.add(new ProContBoardEndDTO(axisPmProCont.getOrderNo()).setMatNo(pmPdSlab.getVirtualSlabNo())
.setLen(largePltList.get(0).getRollAimLen()).setMoMatNo(null)
.setLen(largePltList.get(0).getRollAimLen()).setMoMatNo(pmPdSlab.getSlabNo())
.setMscLineNo(pmPdSlab.getMscLineNo())
.setPdMatStatus(Constants.PdStatusHp.PD_STATUS_HP_12).setPpFlag(PdProdFlag.VIRTUAL_COMPOSITE_SLAB.getCode())
.setThk(largePltList.get(0).getRollAimThick())
@ -599,10 +614,13 @@ public class SubServiceImpl implements SubService {
// 小板维度
boardEndEventList
.add(new ProContBoardEndDTO(pmSmallPltPos.getOrderNo()).setMatNo(pmPdSlab.getVirtualSlabNo() + pmSmallPltPos.getSmallPlateDivNo())
.setLen(pmSmallPltPos.getOrderLen()).setMoMatNo(pmSmallPltPos.getPdMatNo())
.setLen(pmSmallPltPos.getOrderLen())
.setMoMatNo(pmSmallPltPos.getPdMatNo())
.setMscLineNo(pmPdSlab.getMscLineNo())
.setPdMatStatus(Constants.PdStatusHp.PD_STATUS_HP_12).setPpFlag(PdProdFlag.SMALL_POS_VIRTUAL_SLAB.getCode())
.setThk(pmSmallPltPos.getOrderThick()).setWid(pmSmallPltPos.getOrderWidth())
.setPdMatStatus(Constants.PdStatusHp.PD_STATUS_HP_12)
.setPpFlag(PdProdFlag.SMALL_POS_VIRTUAL_SLAB.getCode())
.setThk(pmSmallPltPos.getOrderThick())
.setWid(pmSmallPltPos.getOrderWidth())
.setWgt(pmProContFilterResposeDTO.getOrderUnitAimWt())
.setWholeBacklogCode(axisPmProCont.getWholeBacklogCode())
.setStNo(pmProContFilterResposeDTO.getStNo())

Loading…
Cancel
Save