|
|
@@ -72,6 +72,8 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static java.lang.Math.abs;
|
|
|
+
|
|
|
/**
|
|
|
* MeterWorkCarActualFirst服务实现:
|
|
|
*
|
|
|
@@ -1024,135 +1026,157 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
|
|
|
@Override
|
|
|
@Transactional(value = "tm", rollbackFor = Exception.class)
|
|
|
public RESTfulResult doAddNetInnerWf(MeterWorkCarActualFirst secondDb, MeterWorkCarActual netDb, String saveTare, MeterMonitorNote note) throws Exception {
|
|
|
- RESTfulResult rm = new RESTfulResult();
|
|
|
- rm.setCode("200");
|
|
|
-
|
|
|
+ try{
|
|
|
|
|
|
- //1、存储当前计量的数据
|
|
|
- SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
|
|
|
- String afl = formatter.format(secondDb.getCreateTime());
|
|
|
- String no = meterWorkCarActualFirstMapper.getNewID(afl);
|
|
|
- secondDb.setActualFirstNo(formatter.format(new Date()) + no);
|
|
|
- secondDb.setValueFlag("2");//洁净
|
|
|
- meterWorkCarActualFirstMapper.insertSelective(secondDb);
|
|
|
+ RESTfulResult rm = new RESTfulResult();
|
|
|
+ rm.setCode("200");
|
|
|
|
|
|
- //修改一次计量数据为洁净
|
|
|
- MeterWorkCarActualFirst firstUpdate = new MeterWorkCarActualFirst();
|
|
|
- //2、存储洁净数据
|
|
|
- if (secondDb.getMeterWeight().equals(netDb.getTareWeight())) {
|
|
|
- //二次重量如果跟皮重一样
|
|
|
- netDb.setActualFirst2No(secondDb.getActualFirstNo());
|
|
|
- firstUpdate.setActualFirstNo(netDb.getActualFirst1No());
|
|
|
- firstUpdate.setWeightType("0");
|
|
|
- } else {
|
|
|
- netDb.setActualFirst1No(secondDb.getActualFirstNo());
|
|
|
- firstUpdate.setActualFirstNo(netDb.getActualFirst2No());
|
|
|
- firstUpdate.setWeightType("1");
|
|
|
- }
|
|
|
|
|
|
- //3、修改第一次存储的计量数据状态为洁净
|
|
|
- if (firstUpdate.getActualFirstNo() != null) {
|
|
|
- firstUpdate.setValueFlag("2");
|
|
|
- meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(firstUpdate);
|
|
|
- }
|
|
|
+ //1、存储当前计量的数据
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ String afl = formatter.format(secondDb.getCreateTime());
|
|
|
+ String no = meterWorkCarActualFirstMapper.getNewID(afl);
|
|
|
+ secondDb.setActualFirstNo(formatter.format(new Date()) + no);
|
|
|
+ secondDb.setValueFlag("2");//洁净
|
|
|
+ meterWorkCarActualFirstMapper.insertSelective(secondDb);
|
|
|
+
|
|
|
+ //修改一次计量数据为洁净
|
|
|
+ MeterWorkCarActualFirst firstUpdate = new MeterWorkCarActualFirst();
|
|
|
+ //2、存储洁净数据
|
|
|
+ if (secondDb.getMeterWeight().equals(netDb.getTareWeight())) {
|
|
|
+ //二次重量如果跟皮重一样
|
|
|
+ netDb.setActualFirst2No(secondDb.getActualFirstNo());
|
|
|
+ firstUpdate.setActualFirstNo(netDb.getActualFirst1No());
|
|
|
+ firstUpdate.setWeightType("0");
|
|
|
+ } else {
|
|
|
+ netDb.setActualFirst1No(secondDb.getActualFirstNo());
|
|
|
+ firstUpdate.setActualFirstNo(netDb.getActualFirst2No());
|
|
|
+ firstUpdate.setWeightType("1");
|
|
|
+ }
|
|
|
|
|
|
- // 判断当前数据是否存在委托
|
|
|
- if (netDb.getPredictionNo() != null && "".equals(netDb.getPredictionNo())) {
|
|
|
- MeterWorkCarActualFirst gross = meterWorkCarActualFirstMapper.selectByPrimaryKey(netDb.getActualFirst1No());
|
|
|
- if ((gross.getPredictionNo() == null || "".equals(gross.getPredictionNo()))) {
|
|
|
- // 如果毛重数据还未匹配委托,则匹配委托操作
|
|
|
- MeterWorkCarActualFirst meca1 = meterWorkCarActualFirstMapper.selectAndMatch(gross.getActualFirstNo(), netDb.getPredictionNo());
|
|
|
- meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(meca1);
|
|
|
- PreTrackScale preTrackScale = new PreTrackScale();
|
|
|
- preTrackScale.setPredictionNo(netDb.getPredictionNo());
|
|
|
- preTrackScale.setValueFlag("2");
|
|
|
- preTrackScale.setUploadFlag("1");
|
|
|
- preTrackScaleMapper.updateByPrimaryKeySelective(preTrackScale);
|
|
|
+ //3、修改第一次存储的计量数据状态为洁净
|
|
|
+ if (firstUpdate.getActualFirstNo() != null) {
|
|
|
+ firstUpdate.setValueFlag("2");
|
|
|
+ meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(firstUpdate);
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- String no1 = meterWorkCarActualMapper.getNewID(afl);
|
|
|
- netDb.setActualNo(afl + no1);
|
|
|
- if (netDb != null && netDb.getNetWeight() != null) {
|
|
|
- //2021年3月7日 净重保留两位小数;
|
|
|
- BigDecimal net;
|
|
|
- net = new BigDecimal(String.valueOf(netDb.getNetWeight())).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- netDb.setNetWeight(net);
|
|
|
- }
|
|
|
- netDb.setUploadFlag("1");
|
|
|
- meterWorkCarActualMapper.insert(netDb);
|
|
|
+ // 判断当前数据是否存在委托
|
|
|
+ if (netDb.getPredictionNo() != null && "".equals(netDb.getPredictionNo())) {
|
|
|
+ MeterWorkCarActualFirst gross = meterWorkCarActualFirstMapper.selectByPrimaryKey(netDb.getActualFirst1No());
|
|
|
+ if ((gross.getPredictionNo() == null || "".equals(gross.getPredictionNo()))) {
|
|
|
+ // 如果毛重数据还未匹配委托,则匹配委托操作
|
|
|
+ MeterWorkCarActualFirst meca1 = meterWorkCarActualFirstMapper.selectAndMatch(gross.getActualFirstNo(), netDb.getPredictionNo());
|
|
|
+ meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(meca1);
|
|
|
+ PreTrackScale preTrackScale = new PreTrackScale();
|
|
|
+ preTrackScale.setPredictionNo(netDb.getPredictionNo());
|
|
|
+ preTrackScale.setValueFlag("2");
|
|
|
+ preTrackScale.setUploadFlag("1");
|
|
|
+ preTrackScaleMapper.updateByPrimaryKeySelective(preTrackScale);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //4、如果为期限皮重,则将期限皮重转化为一条皮重计量数据保存
|
|
|
- MeterWorkCarActualFirst mwraf = meterWorkCarActualFirstMapper.selectByPrimaryKey(netDb.getActualFirst2No());
|
|
|
- if (mwraf == null) {
|
|
|
- MeterBaseTermTareData mbttd = meterBaseTermTareDataMapper.selectByPrimaryKey(netDb.getActualFirst2No());
|
|
|
- MeterWorkCarActualFirst imTare = new MeterWorkCarActualFirst();
|
|
|
- //补充数据
|
|
|
- String afl1 = formatter.format(new Date());
|
|
|
- String imTareNO = meterWorkCarActualFirstMapper.getNewID(afl1);
|
|
|
- imTare.setActualFirstNo(afl1 + imTareNO);
|
|
|
- imTare.setMeterTypeNo(secondDb.getMeterTypeNo());
|
|
|
- imTare.setMeterTypeName(secondDb.getMeterTypeName());
|
|
|
- imTare.setBaseSpotNo(mbttd.getBaseSpotNo());
|
|
|
- imTare.setBaseSpotName(mbttd.getBaseSpotName());
|
|
|
- imTare.setCarNo(mbttd.getCarNo());
|
|
|
- imTare.setCreateTime(mbttd.getCreateTime());
|
|
|
- imTare.setCreateManNo(mbttd.getCreateManNo());
|
|
|
- imTare.setCreateManName(mbttd.getCreateManName());
|
|
|
- imTare.setMeterWeight(netDb.getTareWeight());
|
|
|
- imTare.setWeightType("2");//期限皮重
|
|
|
- imTare.setValueFlag("2");//洁净
|
|
|
- meterWorkCarActualFirstMapper.insertSelective(imTare);
|
|
|
- //将洁净数据中的皮重编号修改
|
|
|
- MeterWorkCarActual mwca = new MeterWorkCarActual();
|
|
|
- mwca.setActualNo(netDb.getActualNo());
|
|
|
- mwca.setActualFirst2No(imTare.getActualFirstNo());
|
|
|
- meterWorkCarActualMapper.updateByPrimaryKeySelective(mwca);
|
|
|
- }
|
|
|
+ String no1 = meterWorkCarActualMapper.getNewID(afl);
|
|
|
+ netDb.setActualNo(afl + no1);
|
|
|
+ if (netDb != null && netDb.getNetWeight() != null) {
|
|
|
+ //2021年3月7日 净重保留两位小数;
|
|
|
+ BigDecimal net;
|
|
|
+ net = new BigDecimal(String.valueOf(netDb.getNetWeight())).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ netDb.setNetWeight(net);
|
|
|
+ }
|
|
|
+ netDb.setUploadFlag("1");
|
|
|
+ meterWorkCarActualMapper.insert(netDb);
|
|
|
+
|
|
|
+ //4、如果为期限皮重,则将期限皮重转化为一条皮重计量数据保存
|
|
|
+ MeterWorkCarActualFirst mwraf = meterWorkCarActualFirstMapper.selectByPrimaryKey(netDb.getActualFirst2No());
|
|
|
+ if (mwraf == null) {
|
|
|
+ MeterBaseTermTareData mbttd = new MeterBaseTermTareData();
|
|
|
+ HashMap mbMap = new HashMap();
|
|
|
+ SimpleDateFormat mbsdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ mbMap.put("endTime",mbsdf.format(new Date()));
|
|
|
+ if(StringUtils.isNotEmpty(netDb.getActualFirst2No())){
|
|
|
+ mbMap.put("dataNo",netDb.getActualFirst2No());
|
|
|
+ mbttd = meterBaseTermTareDataMapper.selectByDataNo(mbMap);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ mbMap.put("carNo",netDb.getCarNo());
|
|
|
+ mbttd = meterBaseTermTareDataMapper.selectByCarNo(mbMap);
|
|
|
+ }
|
|
|
+ MeterWorkCarActualFirst imTare = new MeterWorkCarActualFirst();
|
|
|
+ //补充数据
|
|
|
+ String afl1 = formatter.format(new Date());
|
|
|
+ String imTareNO = meterWorkCarActualFirstMapper.getNewID(afl1);
|
|
|
+ imTare.setActualFirstNo(afl1 + imTareNO);
|
|
|
+ imTare.setMeterTypeNo(secondDb.getMeterTypeNo());
|
|
|
+ imTare.setMeterTypeName(secondDb.getMeterTypeName());
|
|
|
+ imTare.setBaseSpotNo(mbttd.getBaseSpotNo());
|
|
|
+ imTare.setBaseSpotName(mbttd.getBaseSpotName());
|
|
|
+ imTare.setCarNo(mbttd.getCarNo());
|
|
|
+ imTare.setCreateTime(mbttd.getCreateTime());
|
|
|
+ imTare.setCreateManNo(mbttd.getCreateManNo());
|
|
|
+ imTare.setCreateManName(mbttd.getCreateManName());
|
|
|
+ imTare.setMeterWeight(netDb.getTareWeight());
|
|
|
+ imTare.setWeightType("2");//期限皮重
|
|
|
+ imTare.setValueFlag("2");//洁净
|
|
|
+ meterWorkCarActualFirstMapper.insertSelective(imTare);
|
|
|
+ //将洁净数据中的皮重编号修改
|
|
|
+ MeterWorkCarActual mwca = new MeterWorkCarActual();
|
|
|
+ mwca.setActualNo(netDb.getActualNo());
|
|
|
+ mwca.setActualFirst2No(imTare.getActualFirstNo());
|
|
|
+ meterWorkCarActualMapper.updateByPrimaryKeySelective(mwca);
|
|
|
+ }
|
|
|
|
|
|
- //4、存储历史皮重及历史皮重明细信息
|
|
|
- if ("1".equals(saveTare)) {
|
|
|
- MeterWorkCarActualFirst oci = new MeterWorkCarActualFirst();
|
|
|
- oci.setCarNo(netDb.getCarNo());
|
|
|
- oci.setCreateTime(netDb.getTareTime());
|
|
|
- oci.setBaseSpotNo(netDb.getBaseSpot2No());
|
|
|
- oci.setBaseSpotName(netDb.getBaseSpot2Name());
|
|
|
- oci.setMeterWeight(netDb.getTareWeight());
|
|
|
- oci.setActualFirstNo(netDb.getActualFirst2No());
|
|
|
- doSaveHisTare(oci);
|
|
|
- }
|
|
|
+ //4、存储历史皮重及历史皮重明细信息
|
|
|
+ if ("1".equals(saveTare)) {
|
|
|
+ MeterWorkCarActualFirst oci = new MeterWorkCarActualFirst();
|
|
|
+ oci.setCarNo(netDb.getCarNo());
|
|
|
+ oci.setCreateTime(netDb.getTareTime());
|
|
|
+ oci.setBaseSpotNo(netDb.getBaseSpot2No());
|
|
|
+ oci.setBaseSpotName(netDb.getBaseSpot2Name());
|
|
|
+ oci.setMeterWeight(netDb.getTareWeight());
|
|
|
+ oci.setActualFirstNo(netDb.getActualFirst2No());
|
|
|
+ doSaveHisTare(oci);
|
|
|
+ }
|
|
|
|
|
|
- //5、保存图片
|
|
|
- SaveImg(secondDb);
|
|
|
+ //5、保存图片
|
|
|
+ SaveImg(secondDb);
|
|
|
|
|
|
- //6、修改计量监控
|
|
|
- updateMonitor(secondDb.getBaseSpotNo());
|
|
|
+ //6、修改计量监控
|
|
|
+ updateMonitor(secondDb.getBaseSpotNo());
|
|
|
|
|
|
- //保存日志
|
|
|
- saveNote(note);
|
|
|
+ //保存日志
|
|
|
+ saveNote(note);
|
|
|
|
|
|
- //当存储一次数据或者结净时,将本车辆的预处理重量改为已使用
|
|
|
- updatePreWeight(secondDb.getCarNo());
|
|
|
+ //当存储一次数据或者结净时,将本车辆的预处理重量改为已使用
|
|
|
+ updatePreWeight(secondDb.getCarNo());
|
|
|
|
|
|
- updateMonitorOver(secondDb.getActualFirstNo(), secondDb.getBaseSpotNo());
|
|
|
+ updateMonitorOver(secondDb.getActualFirstNo(), secondDb.getBaseSpotNo());
|
|
|
|
|
|
- //重量类型为毛重则调用接口为
|
|
|
- String flag = "";
|
|
|
- /*
|
|
|
- if("0".equals(secondDb.getWeightType())){
|
|
|
- flag = transferParamForLims(netDb.getCarNo(),netDb.getMatterNo(),netDb.getReceivingUintName(),netDb.getForwardingUnitName(),netDb.getNetWeight().toString(),netDb.getNetTime(),"",netDb.getActualNo());
|
|
|
- }
|
|
|
- //*/
|
|
|
+ //重量类型为毛重则调用接口为
|
|
|
+ String flag = "";
|
|
|
+ /*
|
|
|
+ if("0".equals(secondDb.getWeightType())){
|
|
|
+ flag = transferParamForLims(netDb.getCarNo(),netDb.getMatterNo(),netDb.getReceivingUintName(),netDb.getForwardingUnitName(),netDb.getNetWeight().toString(),netDb.getNetTime(),"",netDb.getActualNo());
|
|
|
+ }
|
|
|
+ //*/
|
|
|
|
|
|
- //补充附加重量的数据
|
|
|
- if (StringUtils.isNotEmpty(secondDb.getAddWgtPk())) {
|
|
|
- insertAddWgtNo(secondDb.getActualFirstNo(), secondDb.getAddWgtPk(), secondDb.getCreateManNo(), secondDb.getCreateManName());
|
|
|
- }
|
|
|
+ //补充附加重量的数据
|
|
|
+ if (StringUtils.isNotEmpty(secondDb.getAddWgtPk())) {
|
|
|
+ insertAddWgtNo(secondDb.getActualFirstNo(), secondDb.getAddWgtPk(), secondDb.getCreateManNo(), secondDb.getCreateManName());
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- rm.setData(secondDb.getActualFirstNo());
|
|
|
- rm.setMessage(flag);
|
|
|
- return rm;
|
|
|
+ rm.setData(secondDb.getActualFirstNo());
|
|
|
+ rm.setMessage(flag);
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+ catch (Exception e){
|
|
|
+ RESTfulResult rm = new RESTfulResult();
|
|
|
+ rm.setCode("500");
|
|
|
+ rm.setData(null);
|
|
|
+ rm.setMessage(e.getMessage());
|
|
|
+ e.printStackTrace();
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -2873,7 +2897,7 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
|
|
|
actualRow2.setActualNo(sdf.format(new Date()) + no1);
|
|
|
actualRow2.setNetTime(new Date());
|
|
|
actualRow2.setNetMode(DbConstants.TYPE);
|
|
|
- actualRow2.setNote("混装结净");
|
|
|
+ actualRow2.setNote(" 结净");
|
|
|
actualRow2.setUploadFlag("1");
|
|
|
actualRow2.setIsPreScale("1");
|
|
|
actualRow2.setNetWeight(mwcaf3.getMeterWeight().subtract(mwcaf4.getMeterWeight()));
|
|
|
@@ -2885,5 +2909,264 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String doubleEntrustmentMatch(String actualNo1, String actualNo2, String predictionNo1, String predictionNo2) {
|
|
|
+ try{
|
|
|
+ //查询出一次计量数据
|
|
|
+ MeterWorkCarActualFirst mwcaf01 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo1);
|
|
|
+ MeterWorkCarActualFirst mwcaf02 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo1);
|
|
|
+ MeterWorkCarActualFirst mwcaf03 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo2);
|
|
|
+ MeterWorkCarActualFirst mwcaf04 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo2);
|
|
|
+
|
|
|
+ //查询出所有委托信息
|
|
|
+ PreTrackScale pts01 = preTrackScaleMapper.selectByPrimaryKey(predictionNo1);
|
|
|
+ PreTrackScale pts02 = preTrackScaleMapper.selectByPrimaryKey(predictionNo2);
|
|
|
+
|
|
|
+ //定义两个洁净类
|
|
|
+ MeterWorkCarActual actualRow1 = new MeterWorkCarActual();
|
|
|
+ MeterWorkCarActual actualRow2 = new MeterWorkCarActual();
|
|
|
+
|
|
|
+ BigDecimal num01 = mwcaf01.getMeterWeight().subtract(mwcaf03.getMeterWeight()).abs();
|
|
|
+ if(mwcaf01 == null || mwcaf03 == null ){
|
|
|
+ return "一次计量数据为空,请确认!!";
|
|
|
+ }
|
|
|
+ //判断毛重必须大于皮重
|
|
|
+ if(num01.compareTo(BigDecimal.valueOf(0)) == -1){
|
|
|
+ return "第一个一次计量重量一定要大于第二条一次计量重量!!";
|
|
|
+ }
|
|
|
+ if(pts01 == null || pts02 == null){
|
|
|
+ return "委托信息为空,请确认!!";
|
|
|
+ }
|
|
|
+ if(!mwcaf01.getCarNo().equals(mwcaf03.getCarNo())){
|
|
|
+ return "车号不一致,不能匹配洁净!!";
|
|
|
+ }
|
|
|
+ //洁净数据不能小于400
|
|
|
+ if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
|
|
|
+ return "选择的两条一次计量数据不能小于400!!";
|
|
|
+ }
|
|
|
+ if(pts01.getValueFlag().equals("2") || pts02.getValueFlag().equals("2")){
|
|
|
+ return "委托信息已使用!!";
|
|
|
+ }
|
|
|
+
|
|
|
+ if(pts01.getValueFlag().equals("3") || pts02.getValueFlag().equals("3")){
|
|
|
+ return "委托信息已作废!!";
|
|
|
+ }
|
|
|
+ if(mwcaf01.getValueFlag().equals("2") || mwcaf03.getValueFlag().equals("2")){
|
|
|
+ return "一次计量数据已洁净!!";
|
|
|
+ }
|
|
|
+
|
|
|
+ //将委托中的编号和收发货的等数据拷贝进一次数据中
|
|
|
+ MeterWorkCarActualFirst first1 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo1, predictionNo1);
|
|
|
+ BeanUtils.copyProperties(first1,mwcaf01);
|
|
|
+ MeterWorkCarActualFirst first2 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo2, predictionNo1);
|
|
|
+ BeanUtils.copyProperties(first2, mwcaf02);
|
|
|
+ MeterWorkCarActualFirst first3 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo1, predictionNo2);
|
|
|
+ BeanUtils.copyProperties(first3,mwcaf03);
|
|
|
+ MeterWorkCarActualFirst first4 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo2, predictionNo2);
|
|
|
+ BeanUtils.copyProperties(first4, mwcaf04);
|
|
|
+
|
|
|
+ //将委托中的编号和收发货单位和一次数据等数据拷贝进结净数据中
|
|
|
+ MeterWorkCarActual mwca1 = meterWorkCarActualMapper.manualAddPre(actualNo1, actualNo2, predictionNo1);
|
|
|
+ BeanUtils.copyProperties(mwca1, actualRow1);
|
|
|
+ MeterWorkCarActual mwca2 = meterWorkCarActualMapper.manualAddPre(actualNo1, actualNo2, predictionNo2);
|
|
|
+ BeanUtils.copyProperties(mwca2,actualRow2);
|
|
|
+
|
|
|
+ //更新预报数据
|
|
|
+ PreTrackScale scale = new PreTrackScale();
|
|
|
+ scale.setPredictionNo(predictionNo1);
|
|
|
+ scale.setValueFlag(DbConstants.NET);
|
|
|
+ scale.setUpdateTime(new Date());
|
|
|
+ scale.setUpdateManNo("system");
|
|
|
+ scale.setUpdateManName("二次计量洁净更新");
|
|
|
+ scale.setUploadFlag("1");
|
|
|
+ preTrackScaleMapper.updateByPrimaryKeySelective(scale);
|
|
|
+
|
|
|
+ PreTrackScale scale1 = new PreTrackScale();
|
|
|
+ scale1.setPredictionNo(predictionNo2);
|
|
|
+ scale1.setValueFlag(DbConstants.NET);
|
|
|
+ scale1.setUpdateTime(new Date());
|
|
|
+ scale1.setUpdateManNo("system");
|
|
|
+ scale1.setUpdateManName("二次计量洁净更新");
|
|
|
+ scale1.setUploadFlag("1");
|
|
|
+ preTrackScaleMapper.updateByPrimaryKeySelective(scale1);
|
|
|
+
|
|
|
+ //更新一次数据
|
|
|
+ //更新第一次毛重数据库
|
|
|
+ mwcaf01.setValueFlag(DbConstants.NET);
|
|
|
+ mwcaf01.setUpdateManName("system");
|
|
|
+ mwcaf01.setUpdateManName("二次计量洁净更新");
|
|
|
+ mwcaf01.setUpdateTime(new Date());
|
|
|
+ mwcaf01.setIsPreScale("1");
|
|
|
+ meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaf01);
|
|
|
+ //更新第一次皮重数据库
|
|
|
+ mwcaf02.setValueFlag(DbConstants.NET);
|
|
|
+ mwcaf02.setUpdateManName("system");
|
|
|
+ mwcaf02.setUpdateManName("二次计量洁净更新");
|
|
|
+ mwcaf02.setUpdateTime(new Date());
|
|
|
+ mwcaf02.setIsPreScale("1");
|
|
|
+ meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaf02);
|
|
|
+ //添加第一次毛重数据库
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ String afl = sdf.format(new Date());
|
|
|
+ String actualFirstNo = sdf.format(new Date()) + meterWorkCarActualFirstMapper.getNewID(afl);
|
|
|
+ mwcaf03.setActualFirstNo(actualFirstNo);
|
|
|
+ mwcaf03.setValueFlag(DbConstants.NET);
|
|
|
+ mwcaf03.setUpdateManName("system");
|
|
|
+ mwcaf03.setUpdateManName("二次计量洁净更新");
|
|
|
+ mwcaf03.setUpdateTime(new Date());
|
|
|
+ mwcaf03.setIsPreScale("1");
|
|
|
+ meterWorkCarActualFirstMapper.insertSelective(mwcaf03);
|
|
|
+ //添加第二次皮重数据库
|
|
|
+ SimpleDateFormat sdf01 = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ String afl01 = sdf01.format(new Date());
|
|
|
+ String actualSecondNo = sdf01.format(new Date()) + meterWorkCarActualFirstMapper.getNewID(afl01);
|
|
|
+ mwcaf04.setActualFirstNo(actualSecondNo);
|
|
|
+ mwcaf04.setValueFlag(DbConstants.NET);
|
|
|
+ mwcaf04.setUpdateManName("system");
|
|
|
+ mwcaf04.setUpdateManName("二次计量洁净更新");
|
|
|
+ mwcaf04.setUpdateTime(new Date());
|
|
|
+ mwcaf04.setIsPreScale("1");
|
|
|
+ meterWorkCarActualFirstMapper.insertSelective(mwcaf04);
|
|
|
+
|
|
|
+ //添加结净数据
|
|
|
+ String no = meterWorkCarActualMapper.getNewID(sdf.format(new Date()));
|
|
|
+ actualRow1.setActualNo(sdf.format(new Date()) + no);
|
|
|
+ actualRow1.setNetTime(new Date());
|
|
|
+ actualRow1.setNetMode(DbConstants.TYPE);
|
|
|
+ actualRow1.setNote("双委托匹配洁净");
|
|
|
+ actualRow1.setUploadFlag("1");
|
|
|
+ actualRow1.setIsPreScale("1");
|
|
|
+ actualRow1.setNetWeight(mwcaf01.getMeterWeight().subtract(mwcaf02.getMeterWeight()));
|
|
|
+ meterWorkCarActualMapper.insertSelective(actualRow1);
|
|
|
+
|
|
|
+ String no1 = meterWorkCarActualMapper.getNewID(sdf.format(new Date()));
|
|
|
+ actualRow2.setActualNo(sdf.format(new Date()) + no1);
|
|
|
+ actualRow2.setNetTime(new Date());
|
|
|
+ actualRow2.setNetMode(DbConstants.TYPE);
|
|
|
+ actualRow2.setNote("双委托匹配洁净");
|
|
|
+ actualRow2.setUploadFlag("1");
|
|
|
+ actualRow2.setIsPreScale("1");
|
|
|
+ actualRow2.setNetWeight(mwcaf03.getMeterWeight().subtract(mwcaf04.getMeterWeight()));
|
|
|
+ meterWorkCarActualMapper.insertSelective(actualRow2);
|
|
|
+ }catch(Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ return "操作异常,请确认";
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public RESTfulResult doNetAddTwo(MeterWorkCarActualFirst one, MeterWorkCarActual two, PreTrackScale three, PreTrackScale four) throws Exception {
|
|
|
+ RESTfulResult rm = new RESTfulResult();
|
|
|
+ rm.setCode("200");
|
|
|
+
|
|
|
+ //1、存储当前计量的数据
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ String afl = formatter.format(one.getCreateTime());
|
|
|
+ String no = meterWorkCarActualFirstMapper.getNewID(afl);
|
|
|
+ one.setActualFirstNo(formatter.format(new Date()) + no);
|
|
|
+ one.setValueFlag("2");//洁净
|
|
|
+ meterWorkCarActualFirstMapper.insertSelective(one);
|
|
|
+
|
|
|
+ //修改一次计量数据为洁净
|
|
|
+ MeterWorkCarActualFirst firstUpdate = new MeterWorkCarActualFirst();
|
|
|
+ //2、存储洁净数据
|
|
|
+ if (one.getMeterWeight().equals(two.getTareWeight())) {
|
|
|
+ //二次重量如果跟皮重一样
|
|
|
+ two.setActualFirst2No(one.getActualFirstNo());
|
|
|
+ firstUpdate.setActualFirstNo(two.getActualFirst1No());
|
|
|
+ } else {
|
|
|
+ two.setActualFirst1No(one.getActualFirstNo());
|
|
|
+ firstUpdate.setActualFirstNo(two.getActualFirst2No());
|
|
|
+ }
|
|
|
+
|
|
|
+ //3、修改第一次存储的计量数据状态为洁净
|
|
|
+ if (firstUpdate.getActualFirstNo() != null) {
|
|
|
+ firstUpdate.setValueFlag("2");
|
|
|
+ meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(firstUpdate);
|
|
|
+ }
|
|
|
+
|
|
|
+ //4、判断第一次计量数据是否匹配委托
|
|
|
+ MeterWorkCarActualFirst mwca1 = meterWorkCarActualFirstMapper.selectByPrimaryKey(two.getActualFirst1No());
|
|
|
+ if(mwca1.getPredictionNo().equals("")){
|
|
|
+ MeterWorkCarActualFirst meca1 = meterWorkCarActualFirstMapper.selectAndMatch(firstUpdate.getActualFirstNo(), three.getPredictionNo());
|
|
|
+ meca1.setIsPreScale("1");
|
|
|
+ meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(meca1);
|
|
|
+ }
|
|
|
+ //5、判断这次一次计量数据是否匹配委托
|
|
|
+ if (one.getPredictionNo().equals("")){
|
|
|
+ MeterWorkCarActualFirst meca1 = meterWorkCarActualFirstMapper.selectAndMatch(one.getActualFirstNo(), three.getPredictionNo());
|
|
|
+ meca1.setIsPreScale("1");
|
|
|
+ meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(meca1);
|
|
|
+ }
|
|
|
+
|
|
|
+ //6、插入另外两条一次数据,并匹配委托
|
|
|
+ MeterWorkCarActualFirst mwcaf1 = meterWorkCarActualFirstMapper.selectAndMatch(one.getActualFirstNo(), four.getPredictionNo());
|
|
|
+ mwcaf1.setIsPreScale("1");
|
|
|
+ meterWorkCarActualFirstMapper.insertSelective(mwcaf1);
|
|
|
+ MeterWorkCarActualFirst mwcaf2 = meterWorkCarActualFirstMapper.selectAndMatch(firstUpdate.getActualFirstNo(), four.getPredictionNo());
|
|
|
+ mwcaf2.setIsPreScale("1");
|
|
|
+ meterWorkCarActualFirstMapper.insertSelective(mwcaf2);
|
|
|
+
|
|
|
+
|
|
|
+ //7、判断洁净数据是否匹配委托
|
|
|
+ if(two.getPredictionNo().equals("")){
|
|
|
+ MeterWorkCarActual mwcaOld = meterWorkCarActualMapper.mathPredcition(two.getActualNo(), three.getPredictionNo());
|
|
|
+ BeanUtils.copyProperties(mwcaOld,two);
|
|
|
+ }
|
|
|
+
|
|
|
+ //8、插入洁净数据
|
|
|
+ String no1 = meterWorkCarActualMapper.getNewID(afl);
|
|
|
+ two.setActualNo(afl + no1);
|
|
|
+ two.setIsPreScale("1");
|
|
|
+ two.setUploadFlag("1");
|
|
|
+ if (two != null && two.getNetWeight() != null) {
|
|
|
+ //2021年3月7日 净重保留两位小数;
|
|
|
+ BigDecimal net;
|
|
|
+ net = new BigDecimal(String.valueOf(two.getNetWeight())).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ two.setNetWeight(net);
|
|
|
+ }
|
|
|
+ meterWorkCarActualMapper.insert(two);
|
|
|
+
|
|
|
+
|
|
|
+ //9、复制一份新的洁净数据并匹配委托
|
|
|
+ MeterWorkCarActual mwcaNew = meterWorkCarActualMapper.mathPredcition(two.getActualNo(),four.getPredictionNo());
|
|
|
+ mwcaNew.setActualNo(formatter.format(new Date()) + meterWorkCarActualMapper.getNewID(afl));
|
|
|
+ mwcaNew.setIsPreScale("1");
|
|
|
+ mwcaNew.setUploadFlag("1");
|
|
|
+ meterWorkCarActualMapper.insertSelective(mwcaNew);
|
|
|
+
|
|
|
+ //修改委托为已使用状态
|
|
|
+ three.setValueFlag("4");
|
|
|
+ three.setUploadFlag("1");
|
|
|
+ preTrackScaleMapper.updateByPrimaryKeySelective(three);
|
|
|
+ four.setValueFlag("4");
|
|
|
+ four.setUploadFlag("1");
|
|
|
+ preTrackScaleMapper.updateByPrimaryKeySelective(four);
|
|
|
+
|
|
|
+ //10、保存图片
|
|
|
+ SaveImg(one);
|
|
|
+
|
|
|
+ //11、修改计量监控
|
|
|
+ updateMonitor(one.getBaseSpotNo());
|
|
|
+
|
|
|
+ //12、当存储一次数据或者结净时,将本车辆的预处理重量改为已使用
|
|
|
+ updatePreWeight(one.getCarNo());
|
|
|
+
|
|
|
+ updateMonitorOver(one.getActualFirstNo(), one.getBaseSpotNo());
|
|
|
+
|
|
|
+ //重量类型为毛重则调用接口为
|
|
|
+ String flag = "";
|
|
|
+
|
|
|
+ //补充附加重量的数据
|
|
|
+ if (StringUtils.isNotEmpty(one.getAddWgtPk())) {
|
|
|
+ insertAddWgtNo(one.getActualFirstNo(), one.getAddWgtPk(), one.getCreateManNo(), one.getCreateManName());
|
|
|
+ }
|
|
|
+
|
|
|
+ rm.setData(one.getActualFirstNo());
|
|
|
+ rm.setMessage(flag);
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
}
|
|
|
|