|
|
@@ -7600,6 +7600,205 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
|
|
|
return rm;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public RESTfulResult DynamicBatchMatchReceivedWeight(List<MeterWorkRailwayReceived> receivedList) {
|
|
|
+ RESTfulResult rm = new RESTfulResult();
|
|
|
+ rm.setFailed();
|
|
|
+ try{
|
|
|
+ List<String> carList = new ArrayList<>();
|
|
|
+ String strCar = "";
|
|
|
+ //判断从表数据中是否包含委托编号
|
|
|
+ for (MeterWorkRailwayReceived receivedModel: receivedList) {
|
|
|
+ Assert.isTrue(receivedModel.getPredictionNo() != null && StringUtils.isNotEmpty(receivedModel.getPredictionNo()), "所选择的数据中包含没有委托的数据,不能结净");
|
|
|
+ }
|
|
|
+ int count = 0;
|
|
|
+ //将从表数据的车号所对应有效的AI标识皮进行结净,未找到历史皮就跳过
|
|
|
+ for (MeterWorkRailwayReceived received: receivedList) {
|
|
|
+ String userId = received.getUpdateManNo();
|
|
|
+ String userName = received.getUpdateManName();
|
|
|
+
|
|
|
+ //sampleNo:对应毛重、actualFirstNo:对应皮重;
|
|
|
+ MeterWorkRailwayReceived grossReceived = meterWorkRailwayReceivedMapper.selectByPrimaryKey(received.getSampleNo());
|
|
|
+ if(grossReceived != null) {
|
|
|
+ MeterWorkRailwayReceived tareReceived = meterWorkRailwayReceivedMapper.selectByPrimaryKey(received.getActualFirstNo());
|
|
|
+
|
|
|
+ //查找到一条有效的数据并且这条数据小于从表重量才进行结净,否则跳过
|
|
|
+ if(grossReceived.getMeterWeight().compareTo(tareReceived.getMeterWeight()) <= 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ MeterWorkRailwayActFirst grossModel = new MeterWorkRailwayActFirst();
|
|
|
+ MeterWorkRailwayActFirst tareModel = new MeterWorkRailwayActFirst();
|
|
|
+ MeterWorkRailwayActual actualRow = new MeterWorkRailwayActual();
|
|
|
+ PreRailwayScale railwayScale = preRailwayScaleMapper.selectByPrimaryKey(grossReceived.getPredictionNo());
|
|
|
+ //已使用 METER_WORK_RAILWAY_RECEIVED表状态设置为已使用
|
|
|
+ meterWorkRailwayReceivedMapper.updateMeterWorkRailwayReceived(grossReceived.getActualFirstNo());
|
|
|
+ meterWorkRailwayReceivedMapper.updateMeterWorkRailwayReceived(tareReceived.getActualFirstNo());
|
|
|
+ //从表赋值grossModel、
|
|
|
+ BeanUtils.copyProperties(grossReceived, grossModel);
|
|
|
+ grossModel.setLcNo(grossReceived.getRailwayWorkNo());
|
|
|
+ meterWorkRailwayActFirstMapper.insertSelective(grossModel);
|
|
|
+ BeanUtils.copyProperties(tareReceived, tareModel);
|
|
|
+ tareModel.setLcNo(tareReceived.getRailwayWorkNo());
|
|
|
+ meterWorkRailwayActFirstMapper.insertSelective(tareModel);
|
|
|
+
|
|
|
+ //修改主表是否已处理完
|
|
|
+ MeterWorkRailwayReceived receivedModel = meterWorkRailwayReceivedMapper.selectByPrimaryKey(grossReceived.getActualFirstNo());
|
|
|
+ if(receivedModel != null){
|
|
|
+ HashMap<String, Object> obj = new HashMap<>();
|
|
|
+ obj.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
|
|
|
+ HashMap<String, Object> countMap = meterWorkRailwayReceivedMapper.getCount(obj);
|
|
|
+ int countNum = Integer.parseInt(countMap.get("COUNTNUM").toString());
|
|
|
+ if(countNum < 1) {
|
|
|
+ HashMap<String, Object> objMap = new HashMap<>();
|
|
|
+ objMap.put("soundName", receivedModel.getRailwayWorkNo());
|
|
|
+ List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
|
|
|
+ if(recMains.size() >= 1) {
|
|
|
+ recMains.get(0).setIsDispose("1");
|
|
|
+ meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ grossModel.setValueFlag(DbConstants.NET);
|
|
|
+ grossModel.setWeightType("0");
|
|
|
+ grossModel.setNote("从表空皮匹配委托结净更新");
|
|
|
+ grossModel.setWeightType("0");
|
|
|
+ grossModel.setIsPreSacale("1");
|
|
|
+ grossModel.setPredictionNo(railwayScale.getPredictionNo());
|
|
|
+ grossModel.setPredictionType("1");
|
|
|
+ grossModel.setUpdateManNo(userId);
|
|
|
+ grossModel.setUpdateManName(userName);
|
|
|
+ grossModel.setUpdateTime(new Date());
|
|
|
+ meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossModel);
|
|
|
+
|
|
|
+ tareModel.setValueFlag(DbConstants.NET);
|
|
|
+ tareModel.setWeightType("1");
|
|
|
+ tareModel.setNote("从表空皮匹配委托结净更新");
|
|
|
+ tareModel.setIsPreSacale("1");
|
|
|
+ tareModel.setPredictionNo(railwayScale.getPredictionNo());
|
|
|
+ tareModel.setPredictionType("1");
|
|
|
+ tareModel.setUpdateManNo(userId);
|
|
|
+ tareModel.setUpdateManName(userName);
|
|
|
+ tareModel.setUpdateTime(new Date());
|
|
|
+ meterWorkRailwayActFirstMapper.updateByPrimaryKey(tareModel);
|
|
|
+
|
|
|
+ //保存历史皮重
|
|
|
+ doSaveTare(tareModel);
|
|
|
+
|
|
|
+ //添加第二次毛重数据
|
|
|
+ SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ String afl = sdfFormat.format(new Date());
|
|
|
+ MeterWorkRailwayActual mwca = meterWorkRailwayActualMapper.manualAddPre(grossModel.getActualFirstNo(), tareModel.getActualFirstNo(), railwayScale.getPredictionNo());
|
|
|
+ BeanUtils.copyProperties(mwca, actualRow);
|
|
|
+
|
|
|
+ //添加结净数据
|
|
|
+// actualRow.setActualNo(afl + meterWorkRailwayActualMapper.getNewID(afl));
|
|
|
+ // String no = PublicMethod.IdCreate(3);
|
|
|
+ // actualRow1.setActualNo(no);
|
|
|
+ String no = PublicMethod.IdCreate(3);
|
|
|
+ actualRow.setActualNo(no);
|
|
|
+ actualRow.setTareWeight(tareModel.getMeterWeight());
|
|
|
+ actualRow.setNetTime(new Date());
|
|
|
+ actualRow.setNetMode(DbConstants.TYPE);
|
|
|
+ actualRow.setNote("从表空皮配委托结净更新");
|
|
|
+ actualRow.setNetMode("2");
|
|
|
+ actualRow.setUploadFlag("1");
|
|
|
+ actualRow.setIsPreSacale("1");
|
|
|
+ actualRow.setValueFlag("2");
|
|
|
+ actualRow.setPredictionType("1");
|
|
|
+ actualRow.setPredictionNo(railwayScale.getPredictionNo());
|
|
|
+ actualRow.setNetWeight(grossModel.getMeterWeight().subtract(tareModel.getMeterWeight()));
|
|
|
+ if(actualRow.getGrossTime().compareTo(actualRow.getTareTime()) >= 0) {
|
|
|
+ actualRow.setNetSpot3No(actualRow.getBaseSpot1No());
|
|
|
+ actualRow.setNetSpot3Name(actualRow.getBaseSpot1Name());
|
|
|
+ actualRow.setNetManNo(actualRow.getGrossManNo());
|
|
|
+ actualRow.setNetManName(actualRow.getGrossManName());
|
|
|
+ actualRow.setNetTime(actualRow.getGrossTime());
|
|
|
+ actualRow.setCreateTime(actualRow.getGrossTime());
|
|
|
+ actualRow.setCreateManName(actualRow.getGrossManName());
|
|
|
+ }else {
|
|
|
+ actualRow.setNetSpot3No(actualRow.getBaseSpot2No());
|
|
|
+ actualRow.setNetSpot3Name(actualRow.getBaseSpot2Name());
|
|
|
+ actualRow.setNetManNo(actualRow.getTareManNo());
|
|
|
+ actualRow.setNetManName(actualRow.getTareManName());
|
|
|
+ actualRow.setNetTime(actualRow.getTareTime());
|
|
|
+ actualRow.setCreateTime(actualRow.getTareTime());
|
|
|
+ actualRow.setCreateManName(actualRow.getTareManName());
|
|
|
+ }
|
|
|
+ //铁水衡自动导入情况
|
|
|
+ if(actualRow.getTareManNo() != null && actualRow.getTareManNo().equals("system") &&
|
|
|
+ actualRow.getGrossManNo() != null && actualRow.getGrossManNo().equals("system")) {
|
|
|
+ if(userId != null && StringUtils.isNotEmpty(userId) && userName != null &&StringUtils.isNotEmpty(userName)) {
|
|
|
+ actualRow.setNetManNo(userId);
|
|
|
+ actualRow.setNetManName(userName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ actualRow.setSampleNo(tareModel.getLcNo());
|
|
|
+ actualRow.setLcNo(meterWorkRailwayActFirstMapper.getFirstLcNo(actualRow.getActualFirst1No()));
|
|
|
+ actualRow.setUpdateManNo(userId);
|
|
|
+ actualRow.setUpdateManName(userName);
|
|
|
+ actualRow.setUpdateTime(new Date());
|
|
|
+ actualRow.setMemo("从表回空皮结净");
|
|
|
+ meterWorkRailwayActualMapper.insertSelective(actualRow);
|
|
|
+
|
|
|
+ //更新预报数
|
|
|
+ railwayScale.setValueFlag(DbConstants.NET);
|
|
|
+ railwayScale.setUploadFlag("1");
|
|
|
+ railwayScale.setValueFlag("2");
|
|
|
+ railwayScale.setPredictionType("1");
|
|
|
+ railwayScale.setMeasureStation(actualRow.getNetSpot3No());
|
|
|
+ railwayScale.setMeasureStationName(actualRow.getNetSpot3Name());
|
|
|
+ railwayScale.setUpdateTime(new Date());
|
|
|
+ railwayScale.setUpdateManNo(userId);
|
|
|
+ railwayScale.setUpdateManName(userName);
|
|
|
+ preRailwayScaleMapper.updateByPrimaryKeySelective(railwayScale);
|
|
|
+
|
|
|
+ count++;
|
|
|
+ }else {
|
|
|
+ carList.add(received.getRailwayNo());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改主表是否已处理完
|
|
|
+ if(receivedList.size() >= 1) {
|
|
|
+ MeterWorkRailwayReceived receivedModel = meterWorkRailwayReceivedMapper.selectByPrimaryKey(receivedList.get(0).getActualFirstNo());
|
|
|
+ if(receivedModel != null){
|
|
|
+ HashMap<String, Object> obj = new HashMap<>();
|
|
|
+ obj.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
|
|
|
+ HashMap<String, Object> countMap = meterWorkRailwayReceivedMapper.getCount(obj);
|
|
|
+ int countNum = Integer.parseInt(countMap.get("COUNTNUM").toString());
|
|
|
+ if(countNum < 1) {
|
|
|
+ HashMap<String, Object> objMap = new HashMap<>();
|
|
|
+ objMap.put("soundName", receivedModel.getRailwayWorkNo());
|
|
|
+ List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
|
|
|
+ if(recMains.size() >= 1) {
|
|
|
+ recMains.get(0).setIsDispose("1");
|
|
|
+ meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(carList.size() >= 1) {
|
|
|
+ strCar = carList.get(0);
|
|
|
+ if(carList.size() >= 2) {
|
|
|
+ for(String car: carList) {
|
|
|
+ strCar = strCar + "," + car;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ rm.setSucceed();
|
|
|
+ rm.setCode("200");
|
|
|
+// rm.setMessage("操作成功,总共"+ receivedList.size() +"条数据,共有:" + count + "条数据匹配空皮成功");
|
|
|
+ rm.setMessage(strCar);
|
|
|
+ }catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ rm.setMessage("操作异常:>>>" + e.getMessage());
|
|
|
+ }
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public RESTfulResult DynamicBatchMatchHisTareWeight(List<MeterWorkRailwayReceived> receivedList) {
|
|
|
RESTfulResult rm = new RESTfulResult();
|