dengyj před 3 roky
rodič
revize
b347fc798d

+ 8 - 0
src/main/java/com/steerinfo/baseinfo/meterbasecar/service/impl/MeterBaseCarServiceImpl.java

@@ -435,6 +435,14 @@ public class MeterBaseCarServiceImpl extends BaseServiceImpl<MeterBaseCar, Strin
             List<MeterBaseCar> carList = meterBaseCarMapper.selectByParameters(obj);
             if(carList.size() >= 1) {
                 model.setPkNo(carList.get(0).getPkNo());
+                if(model.getUsetDepartmentNo() != null && StringUtils.isNotEmpty(model.getUsetDepartmentNo())) {
+                    //111111:对应内部倒运;888888:对应外进外发
+                    if(model.getUsetDepartmentNo().equals("111111")) {
+                        model.setUsetDepartmentNo("888888");
+                        model.setCarTypeNo("001004003");
+                        model.setCarTypeName("内部");
+                    }
+                }
                 meterBaseCarMapper.updateByPrimaryKeySelective(model);
                 rm.setSucceed(true);
                 rm.setData(model);

+ 1 - 5
src/main/java/com/steerinfo/baseinfo/meterbasemattermap/service/impl/MeterBaseMatterMapServiceImpl.java

@@ -156,7 +156,7 @@ public class MeterBaseMatterMapServiceImpl extends BaseServiceImpl<MeterBaseMatt
                     rm.setData(null);
                     return rm;
                 }
-                else if(mwcaf.size() == 1) {
+                else{
                     for (MeterWorkCarActualFirst model : mwcaf){
                         if(model.getWeightType() == "0" && !model.getPredictionType().equals("")){
                             //判断未被选择的委托中是否存在跟已选择的委托存在双委托关系
@@ -201,10 +201,6 @@ public class MeterBaseMatterMapServiceImpl extends BaseServiceImpl<MeterBaseMatt
                         }
                     }
                 }
-                else {
-                    rm.setData(null);
-                    return rm;
-                }
             }
 
             if(tempList.size() > 0){

+ 36 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/controller/MeterWorkCarActualFirstController.java

@@ -1357,4 +1357,40 @@ public class MeterWorkCarActualFirstController extends BaseRESTfulController {
         }
     }
 
+    @ApiOperation(value = "内倒双委托---保存四条数据和两个结净")
+    @PostMapping(value = "/doAddDoubleNet", produces = "application/json;charset=UTF-8")
+    public RESTfulResult doAddDoubleNet(@RequestBody CommonCombination<MeterWorkCarActualFirst, MeterWorkCarActualFirst, PreTrackScale, PreTrackScale> com) {
+        try {
+            RESTfulResult rm = meterWorkCarActualFirstService.doAddDoubleNet(com.getTwo(), com.getOne(), com.getThree(), com.getFour());
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return failed(null, "操作异常,请确认!");
+        }
+    }
+
+    @ApiOperation(value = "内倒双委托---保存四条数据和两个结净")
+    @PostMapping(value = "/doTermTareNetDoubleRetain", produces = "application/json;charset=UTF-8")
+    public RESTfulResult doTermTareNetDoubleRetain(@RequestBody CommonCombination<MeterWorkCarActualFirst, MeterWorkCarActualFirst, PreTrackScale, PreTrackScale> com) {
+        try {
+            RESTfulResult rm = meterWorkCarActualFirstService.doTermTareNetDoubleRetain(com.getTwo(), com.getOne(), com.getThree(), com.getFour());
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return failed(null, "操作异常,请确认!");
+        }
+    }
+
+    @ApiOperation(value = "内倒双委托---保存四条数据和两个结净")
+    @PostMapping(value = "/doAddDoubleMuchNet", produces = "application/json;charset=UTF-8")
+    public RESTfulResult doAddDoubleMuchNet(@RequestBody CommonCombination<List<MeterWorkCarActualFirst>, MeterWorkCarActualFirst, PreTrackScale, PreTrackScale> com) {
+        try {
+            RESTfulResult rm = meterWorkCarActualFirstService.doAddDoubleMuchNet(com.getOne(), com.getTwo());
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return failed(null, "操作异常,请确认!");
+        }
+    }
+
 }

+ 3 - 1
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/IMeterWorkCarActualFirstService.java

@@ -146,6 +146,8 @@ public interface IMeterWorkCarActualFirstService extends IBaseService<MeterWorkC
 
     RESTfulResult doDoubleAdd(MeterWorkCarActualFirst model, PreTrackScale scale01, PreTrackScale scale02);
     RESTfulResult doTermTareNetDouble(MeterWorkCarActualFirst model, PreTrackScale scale01, PreTrackScale scale02);
-
+    RESTfulResult doAddDoubleNet(MeterWorkCarActualFirst grossModel, MeterWorkCarActualFirst tareModel, PreTrackScale scale01, PreTrackScale scale02);
+    RESTfulResult doTermTareNetDoubleRetain(MeterWorkCarActualFirst grossModel, MeterWorkCarActualFirst tareModel, PreTrackScale scale01, PreTrackScale scale02);
+    RESTfulResult doAddDoubleMuchNet(List<MeterWorkCarActualFirst> grossModels, MeterWorkCarActualFirst tareModel);
     RESTfulResult countFirstByCar(HashMap<String, Object> parmas);
 }

+ 611 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/impl/MeterWorkCarActualFirstServiceImpl.java

@@ -5798,6 +5798,617 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
         return rm;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public RESTfulResult doAddDoubleNet(MeterWorkCarActualFirst grossModel, MeterWorkCarActualFirst tareModel, PreTrackScale scale01, PreTrackScale scale02) {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
+        try{
+            Boolean grossFlag = false;
+            Boolean tareFlag = false;
+            //插入一次毛重数据
+            MeterWorkCarActualFirst firstTemp01 = meterWorkCarActualFirstMapper.selectByPrimaryKey(grossModel.getActualFirstNo());
+            if(firstTemp01 == null) {
+                grossFlag = true;
+                grossModel.setActualFirstNo(PublicMethod.IdCreate(3));
+                grossModel.setValueFlag("1");
+                grossModel.setCreateManNo("system");
+                grossModel.setCreateManName("system");
+                grossModel.setCreateTime(new Date());
+                meterWorkCarActualFirstMapper.insertSelective(grossModel);
+            }
+
+            //插入一次皮重数据
+            MeterWorkCarActualFirst firstTemp02 = meterWorkCarActualFirstMapper.selectByPrimaryKey(tareModel.getActualFirstNo());
+            if(firstTemp02 == null) {
+                tareFlag = false;
+                tareModel.setActualFirstNo(PublicMethod.IdCreate(3));
+                tareModel.setValueFlag("1");
+                tareModel.setCreateManNo("system");
+                tareModel.setCreateManName("system");
+                tareModel.setCreateTime(new Date());
+                meterWorkCarActualFirstMapper.insertSelective(tareModel);
+            }
+
+            PreTrackScale pre01 = preTrackScaleMapper.selectByPrimaryKey(scale01.getPredictionNo());
+            PreTrackScale pre02 = preTrackScaleMapper.selectByPrimaryKey(scale02.getPredictionNo());
+            if(pre01 != null && pre02 != null) {
+                if(pre01.getValueFlag().equals("2") || pre01.getValueFlag().equals("3")) {
+                    rm.setMessage(pre01.getPredictionNo() + "委托信息已使用或已作废");
+                    return rm;
+                }else if(pre02.getValueFlag().equals("2") || pre02.getValueFlag().equals("3")) {
+                    rm.setMessage(pre02.getPredictionNo() + "委托信息已使用或已作废");
+                    return rm;
+                }
+            }else if(pre01 == null){
+                rm.setMessage(pre01.getPredictionNo() + "委托信息不存在");
+                return rm;
+            }else if(pre02 == null) {
+                rm.setMessage(pre02.getPredictionNo() + "委托信息不存在");
+                return rm;
+            }
+
+            MeterWorkCarActualFirst grossFirst01 = new MeterWorkCarActualFirst();
+            MeterWorkCarActualFirst grossFirst02 = new MeterWorkCarActualFirst();
+            //回空皮重信息保存
+            MeterWorkCarActualFirst tareFirst01 = new MeterWorkCarActualFirst();
+            MeterWorkCarActualFirst tareFirst02 = new MeterWorkCarActualFirst();
+            MeterWorkCarActual actualRow01 = new MeterWorkCarActual();
+            MeterWorkCarActual actualRow02 = new MeterWorkCarActual();
+
+            MeterWorkCarActualFirst modelTemp01 = meterWorkCarActualFirstMapper.selectAndMatch(grossModel.getActualFirstNo(), scale01.getPredictionNo());
+            BeanUtils.copyProperties(modelTemp01, grossFirst01);
+            MeterWorkCarActualFirst modelTemp02 = meterWorkCarActualFirstMapper.selectAndMatch(grossModel.getActualFirstNo(), scale02.getPredictionNo());
+            BeanUtils.copyProperties(modelTemp02, grossFirst02);
+
+            MeterWorkCarActualFirst tareFirstTemp01 = meterWorkCarActualFirstMapper.selectAndMatch(tareModel.getActualFirstNo(), scale01.getPredictionNo());
+            BeanUtils.copyProperties(tareFirstTemp01, tareFirst01);
+            MeterWorkCarActualFirst tareFirstTemp02 = meterWorkCarActualFirstMapper.selectAndMatch(tareModel.getActualFirstNo(), scale02.getPredictionNo());
+            BeanUtils.copyProperties(tareFirstTemp02, tareFirst02);
+
+            grossFirst01.setMeterMode("2");
+            grossFirst01.setWeightType("0");
+            grossFirst01.setDataSource("1");
+            grossFirst01.setValueFlag("2");
+            grossFirst01.setIsPreScale("1");
+            grossFirst01.setPredictionType("5");
+            grossFirst01.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            grossFirst01.setUpdateManNo("system");
+            grossFirst01.setUpdateManName("system");
+            grossFirst01.setUpdateTime(new Date());
+            grossFirst01.setNote("内倒双委托一次洁净");
+            meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(grossFirst01);
+
+            grossFirst02.setActualFirstNo(PublicMethod.IdCreate(3));
+            grossFirst02.setMeterMode("2");
+            grossFirst02.setWeightType("0");
+            grossFirst02.setDataSource("1");
+            grossFirst02.setValueFlag("2");
+            grossFirst02.setIsPreScale("1");
+            grossFirst02.setPredictionType("5");
+            grossFirst02.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            grossFirst02.setUpdateManNo("system");
+            grossFirst02.setUpdateManName("system");
+            grossFirst02.setUpdateTime(new Date());
+            grossFirst02.setNote("内倒双委托一次洁净");
+            meterWorkCarActualFirstMapper.insertSelective(grossFirst02);
+
+
+            tareFirst01.setMeterMode("2");
+            tareFirst01.setWeightType("1");
+            tareFirst01.setDataSource("1");
+            tareFirst01.setValueFlag("2");
+            tareFirst01.setIsPreScale("1");
+            tareFirst01.setPredictionType("5");
+            tareFirst01.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            tareFirst01.setUpdateManNo("system");
+            tareFirst01.setUpdateManName("system");
+            tareFirst01.setUpdateTime(new Date());
+            tareFirst01.setNote("内倒双委托一次洁净");
+            meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(tareFirst01);
+
+            tareFirst02.setActualFirstNo(PublicMethod.IdCreate(3));
+            tareFirst02.setMeterMode("2");
+            tareFirst02.setWeightType("1");
+            tareFirst02.setDataSource("1");
+            tareFirst02.setValueFlag("2");
+            tareFirst02.setIsPreScale("1");
+            tareFirst02.setPredictionType("5");
+            tareFirst02.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            tareFirst02.setUpdateManNo("system");
+            tareFirst02.setUpdateManName("system");
+            tareFirst02.setUpdateTime(new Date());
+            tareFirst01.setNote("内倒双委托一次洁净");
+            meterWorkCarActualFirstMapper.insertSelective(tareFirst02);
+
+            //保存历史皮重信息
+            doSaveHisTare(tareFirst01);
+
+            MeterWorkCarActual actualRowTemp01 = meterWorkCarActualMapper.manualAddPre(grossFirst01.getActualFirstNo(), tareFirst01.getActualFirstNo(), scale01.getPredictionNo());
+            BeanUtils.copyProperties(actualRowTemp01, actualRow01);
+            MeterWorkCarActual actualRowTemp02 = meterWorkCarActualMapper.manualAddPre(grossFirst02.getActualFirstNo(), tareFirst02.getActualFirstNo(), scale02.getPredictionNo());
+            BeanUtils.copyProperties(actualRowTemp02, actualRow02);
+
+            actualRow01.setActualNo(PublicMethod.IdCreate(3));
+            actualRow01.setNetMode(DbConstants.TYPE);
+            actualRow01.setNote("内倒双委托一次匹配结净");
+            actualRow01.setUploadFlag("1");
+            actualRow01.setIsPreScale("1");
+            actualRow01.setValueFlag("2");
+            if(actualRow01.getGrossTime().compareTo(actualRow01.getTareTime()) >= 0) {
+                actualRow01.setNetSpot3No(actualRow01.getBaseSpot1No());
+                actualRow01.setNetSpot3Name(actualRow01.getBaseSpot1Name());
+                actualRow01.setNetManNo(actualRow01.getGrossManNo());
+                actualRow01.setNetManName(actualRow01.getGrossManName());
+                actualRow01.setNetTime(actualRow01.getGrossTime());
+                actualRow01.setCreateTime(actualRow01.getGrossTime());
+                actualRow01.setCreateManName(actualRow01.getGrossManName());
+            }else {
+                actualRow01.setNetSpot3No(actualRow01.getBaseSpot2No());
+                actualRow01.setNetSpot3Name(actualRow01.getBaseSpot2Name());
+                actualRow01.setNetManNo(actualRow01.getTareManNo());
+                actualRow01.setNetManName(actualRow01.getTareManName());
+                actualRow01.setNetTime(actualRow01.getTareTime());
+                actualRow01.setCreateTime(actualRow01.getTareTime());
+                actualRow01.setCreateManName(actualRow01.getTareManName());
+            }
+            actualRow01.setPredictionType("5");
+            actualRow01.setPredictionNo(grossFirst01.getPredictionNo());
+            actualRow01.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            actualRow01.setNetWeight(grossFirst01.getMeterWeight().subtract(tareFirst01.getMeterWeight()));
+            meterWorkCarActualMapper.insertSelective(actualRow01);
+
+            actualRow02.setActualNo(PublicMethod.IdCreate(3));
+            actualRow02.setNetMode(DbConstants.TYPE);
+            actualRow02.setNote("内倒双委托一次匹配结净");
+            actualRow02.setUploadFlag("1");
+            actualRow02.setIsPreScale("1");
+            actualRow02.setValueFlag("2");
+            if(actualRow02.getGrossTime().compareTo(actualRow02.getTareTime()) >= 0) {
+                actualRow02.setNetSpot3No(actualRow02.getBaseSpot1No());
+                actualRow02.setNetSpot3Name(actualRow02.getBaseSpot1Name());
+                actualRow02.setNetManNo(actualRow02.getGrossManNo());
+                actualRow02.setNetManName(actualRow02.getGrossManName());
+                actualRow02.setNetTime(actualRow02.getGrossTime());
+                actualRow02.setCreateTime(actualRow02.getGrossTime());
+                actualRow02.setCreateManName(actualRow02.getGrossManName());
+            }else {
+                actualRow02.setNetSpot3No(actualRow02.getBaseSpot2No());
+                actualRow02.setNetSpot3Name(actualRow02.getBaseSpot2Name());
+                actualRow02.setNetManNo(actualRow02.getTareManNo());
+                actualRow02.setNetManName(actualRow02.getTareManName());
+                actualRow02.setNetTime(actualRow02.getTareTime());
+                actualRow02.setCreateTime(actualRow02.getTareTime());
+                actualRow02.setCreateManName(actualRow02.getTareManName());
+            }
+            actualRow02.setPredictionType("5");
+            actualRow02.setPredictionNo(grossFirst02.getPredictionNo());
+            actualRow02.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            actualRow02.setNetWeight(grossFirst02.getMeterWeight().subtract(tareFirst02.getMeterWeight()));
+            meterWorkCarActualMapper.insertSelective(actualRow02);
+
+            //预约信息重置委托
+            pre01.setPredictionType("5");
+            pre01.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            pre01.setMeasureStation(actualRow01.getNetSpot3No());
+            pre01.setMeasureStationName(actualRow01.getNetSpot3Name());
+            pre01.setUpdateManNo("system");
+            pre01.setUpdateManName("system");
+            pre01.setUpdateTime(new Date());
+            pre01.setValueFlag("2");
+            pre01.setUploadFlag("1");
+            pre01.setLineDesc("0");
+            preTrackScaleMapper.updateByPrimaryKeySelective(pre01);
+
+            pre02.setPredictionType("5");
+            pre02.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            pre02.setMeasureStation(actualRow02.getNetSpot3No());
+            pre02.setMeasureStationName(actualRow02.getNetSpot3Name());
+            pre02.setUpdateManNo("system");
+            pre02.setUpdateManName("system");
+            pre02.setUpdateTime(new Date());
+            pre02.setValueFlag("2");
+            pre02.setUploadFlag("1");
+            pre02.setLineDesc("0");
+            preTrackScaleMapper.updateByPrimaryKeySelective(pre02);
+            updatePreWeight(pre01.getCarNo());
+            updatePreWeight(pre02.getCarNo());
+
+            rm.setSucceed(true);
+            rm.setCode("200");
+            if(grossFlag) {
+                rm.setData(grossModel.getActualFirstNo());
+            }
+            if(tareFlag) {
+                rm.setData(tareModel.getActualFirstNo());
+            }
+            rm.setMessage("操作成功");
+        }catch(Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rm.setMessage("操作异常," + e.getMessage());
+        }
+        return rm;
+    }
+
+    @Override
+    public RESTfulResult doTermTareNetDoubleRetain(MeterWorkCarActualFirst grossModel, MeterWorkCarActualFirst tareModel, PreTrackScale scale01, PreTrackScale scale02) {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
+        try{
+            Boolean grossFlag = false;
+            Boolean tareFlag = false;
+            //插入一次毛重数据
+            MeterWorkCarActualFirst firstTemp01 = meterWorkCarActualFirstMapper.selectByPrimaryKey(grossModel.getActualFirstNo());
+            if(firstTemp01 == null) {
+                grossFlag = true;
+                grossModel.setActualFirstNo(PublicMethod.IdCreate(3));
+                grossModel.setValueFlag("1");
+                grossModel.setCreateManNo("system");
+                grossModel.setCreateManName("system");
+                grossModel.setCreateTime(new Date());
+                meterWorkCarActualFirstMapper.insertSelective(grossModel);
+            }
+
+            //插入一次皮重数据
+            MeterWorkCarActualFirst firstTemp02 = meterWorkCarActualFirstMapper.selectByPrimaryKey(tareModel.getActualFirstNo());
+            if(firstTemp02 == null) {
+                tareFlag = false;
+                tareModel.setActualFirstNo(PublicMethod.IdCreate(3));
+                tareModel.setValueFlag("1");
+                tareModel.setCreateManNo("system");
+                tareModel.setCreateManName("system");
+                tareModel.setCreateTime(new Date());
+                meterWorkCarActualFirstMapper.insertSelective(tareModel);
+            }
+
+            PreTrackScale pre01 = preTrackScaleMapper.selectByPrimaryKey(scale01.getPredictionNo());
+            PreTrackScale pre02 = preTrackScaleMapper.selectByPrimaryKey(scale02.getPredictionNo());
+            if(pre01 != null && pre02 != null) {
+                if(pre01.getValueFlag().equals("2") || pre01.getValueFlag().equals("3")) {
+                    rm.setMessage(pre01.getPredictionNo() + "委托信息已使用或已作废");
+                    return rm;
+                }else if(pre02.getValueFlag().equals("2") || pre02.getValueFlag().equals("3")) {
+                    rm.setMessage(pre02.getPredictionNo() + "委托信息已使用或已作废");
+                    return rm;
+                }
+            }else if(pre01 == null){
+                rm.setMessage(pre01.getPredictionNo() + "委托信息不存在");
+                return rm;
+            }else if(pre02 == null) {
+                rm.setMessage(pre02.getPredictionNo() + "委托信息不存在");
+                return rm;
+            }
+
+            MeterWorkCarActualFirst grossFirst01 = new MeterWorkCarActualFirst();
+            MeterWorkCarActualFirst grossFirst02 = new MeterWorkCarActualFirst();
+            //回空皮重信息保存
+            MeterWorkCarActualFirst tareFirst01 = new MeterWorkCarActualFirst();
+            MeterWorkCarActualFirst tareFirst02 = new MeterWorkCarActualFirst();
+            MeterWorkCarActual actualRow01 = new MeterWorkCarActual();
+            MeterWorkCarActual actualRow02 = new MeterWorkCarActual();
+
+            MeterWorkCarActualFirst modelTemp01 = meterWorkCarActualFirstMapper.selectAndMatch(grossModel.getActualFirstNo(), scale01.getPredictionNo());
+            BeanUtils.copyProperties(modelTemp01, grossFirst01);
+            MeterWorkCarActualFirst modelTemp02 = meterWorkCarActualFirstMapper.selectAndMatch(grossModel.getActualFirstNo(), scale02.getPredictionNo());
+            BeanUtils.copyProperties(modelTemp02, grossFirst02);
+
+            MeterWorkCarActualFirst tareFirstTemp01 = meterWorkCarActualFirstMapper.selectAndMatch(tareModel.getActualFirstNo(), scale01.getPredictionNo());
+            BeanUtils.copyProperties(tareFirstTemp01, tareFirst01);
+            MeterWorkCarActualFirst tareFirstTemp02 = meterWorkCarActualFirstMapper.selectAndMatch(tareModel.getActualFirstNo(), scale02.getPredictionNo());
+            BeanUtils.copyProperties(tareFirstTemp02, tareFirst02);
+
+            grossFirst01.setMeterMode("2");
+            grossFirst01.setWeightType("0");
+            grossFirst01.setDataSource("1");
+            grossFirst01.setValueFlag("2");
+            grossFirst01.setIsPreScale("1");
+            grossFirst01.setPredictionType("5");
+            grossFirst01.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            grossFirst01.setUpdateManNo("system");
+            grossFirst01.setUpdateManName("system");
+            grossFirst01.setUpdateTime(new Date());
+            grossFirst01.setNote("内倒双委托一次保存期限皮洁净");
+            meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(grossFirst01);
+
+            grossFirst02.setActualFirstNo(PublicMethod.IdCreate(3));
+            grossFirst02.setMeterMode("2");
+            grossFirst02.setWeightType("0");
+            grossFirst02.setDataSource("1");
+            grossFirst02.setValueFlag("2");
+            grossFirst02.setIsPreScale("1");
+            grossFirst02.setPredictionType("5");
+            grossFirst02.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            grossFirst02.setUpdateManNo("system");
+            grossFirst02.setUpdateManName("system");
+            grossFirst02.setUpdateTime(new Date());
+            grossFirst02.setNote("内倒双委托一次保存期限皮洁净");
+            meterWorkCarActualFirstMapper.insertSelective(grossFirst02);
+
+            tareFirst01.setActualFirstNo(PublicMethod.IdCreate(3));
+            tareFirst01.setMeterMode("2");
+            tareFirst01.setWeightType("2");
+            tareFirst01.setDataSource("1");
+            tareFirst01.setValueFlag("2");
+            tareFirst01.setIsPreScale("1");
+            tareFirst01.setPredictionType("5");
+            tareFirst01.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            tareFirst01.setUpdateManNo("system");
+            tareFirst01.setUpdateManName("system");
+            tareFirst01.setUpdateTime(new Date());
+            tareFirst01.setNote("内倒双委托一次保存期限皮洁净");
+            meterWorkCarActualFirstMapper.insertSelective(tareFirst01);
+
+            tareFirst02.setActualFirstNo(PublicMethod.IdCreate(3));
+            tareFirst02.setMeterMode("2");
+            tareFirst02.setWeightType("2");
+            tareFirst02.setDataSource("1");
+            tareFirst02.setValueFlag("2");
+            tareFirst02.setIsPreScale("1");
+            tareFirst02.setPredictionType("5");
+            tareFirst02.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            tareFirst02.setUpdateManNo("system");
+            tareFirst02.setUpdateManName("system");
+            tareFirst02.setUpdateTime(new Date());
+            tareFirst02.setNote("内倒双委托一次保存期限皮洁净");
+            meterWorkCarActualFirstMapper.insertSelective(tareFirst02);
+
+            //作废一次皮重
+            tareModel.setValueFlag("0");
+            meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(tareModel);
+            //保存历史皮重信息
+            doSaveHisTare(tareFirst01);
+
+            //保存期限皮重信息
+            HashMap<String, Object> map = new HashMap<>();
+            map.put("carNo", tareModel.getCarNo());
+            List<MeterBaseTermTareData> upModels = meterBaseTermTareDataMapper.selectByParameters(map);
+            MeterBaseTermTareData termData = new MeterBaseTermTareData();
+            if (upModels.size() >= 1) {
+                termData = upModels.get(0);
+            }
+            if (termData.getDataNo() != null) {
+                termData.setBaseSpotNo(tareModel.getBaseSpotNo());
+                termData.setBaseSpotName(tareModel.getBaseSpotName());
+                termData.setCarNo(tareModel.getCarNo());
+                termData.setMeterName(tareModel.getCreateManName());
+                termData.setMeterTime(tareModel.getCreateTime());
+                termData.setStartTime(tareModel.getCreateTime());
+                termData.setEndTime(new Date(tareModel.getCreateTime().getTime() + 24 * 60 * 60 * 1000));
+                termData.setWarnTime(new Date(tareModel.getCreateTime().getTime() + 12 * 60 * 60 * 1000));
+                termData.setValueFlag("0");
+                termData.setCreateManNo(tareModel.getCreateManNo());
+                termData.setCreateManName(tareModel.getCreateManName());
+                termData.setCreateTime(new Date());
+                termData.setMeterWeight(tareModel.getMeterWeight());
+                meterBaseTermTareDataMapper.updateByPrimaryKeySelective(termData);
+            } else {
+                //新增操作
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+                String no1 = meterBaseTermTareDataMapper.getNewID(sdf.format(new Date()));
+                termData.setDataNo(sdf.format(new Date()) + no1);
+                termData.setBaseSpotNo(tareModel.getBaseSpotNo());
+                termData.setBaseSpotName(tareModel.getBaseSpotName());
+                termData.setCarNo(tareModel.getCarNo());
+                termData.setMeterName(tareModel.getCreateManName());
+                termData.setMeterTime(tareModel.getCreateTime());
+                termData.setStartTime(tareModel.getCreateTime());
+                termData.setEndTime(new Date(tareModel.getCreateTime().getTime() + 24 * 60 * 60 * 1000));
+                termData.setWarnTime(new Date(tareModel.getCreateTime().getTime() + 12 * 60 * 60 * 1000));
+                termData.setValueFlag("0");
+                termData.setCreateManNo(tareModel.getCreateManNo());
+                termData.setCreateManName(tareModel.getCreateManName());
+                termData.setCreateTime(new Date());
+                termData.setMeterWeight(tareModel.getMeterWeight());
+                meterBaseTermTareDataMapper.insertSelective(termData);
+            }
+
+            MeterWorkCarActual actualRowTemp01 = meterWorkCarActualMapper.manualAddPre(grossFirst01.getActualFirstNo(), tareFirst01.getActualFirstNo(), scale01.getPredictionNo());
+            BeanUtils.copyProperties(actualRowTemp01, actualRow01);
+            MeterWorkCarActual actualRowTemp02 = meterWorkCarActualMapper.manualAddPre(grossFirst02.getActualFirstNo(), tareFirst02.getActualFirstNo(), scale02.getPredictionNo());
+            BeanUtils.copyProperties(actualRowTemp02, actualRow02);
+
+            actualRow01.setActualNo(PublicMethod.IdCreate(3));
+            actualRow01.setNetMode(DbConstants.TYPE);
+            actualRow01.setNote("内倒双委托一次保存期限皮匹配结净");
+            actualRow01.setUploadFlag("1");
+            actualRow01.setIsPreScale("1");
+            actualRow01.setValueFlag("2");
+            if(actualRow01.getGrossTime().compareTo(actualRow01.getTareTime()) >= 0) {
+                actualRow01.setNetSpot3No(actualRow01.getBaseSpot1No());
+                actualRow01.setNetSpot3Name(actualRow01.getBaseSpot1Name());
+                actualRow01.setNetManNo(actualRow01.getGrossManNo());
+                actualRow01.setNetManName(actualRow01.getGrossManName());
+                actualRow01.setNetTime(actualRow01.getGrossTime());
+                actualRow01.setCreateTime(actualRow01.getGrossTime());
+                actualRow01.setCreateManName(actualRow01.getGrossManName());
+            }else {
+                actualRow01.setNetSpot3No(actualRow01.getBaseSpot2No());
+                actualRow01.setNetSpot3Name(actualRow01.getBaseSpot2Name());
+                actualRow01.setNetManNo(actualRow01.getTareManNo());
+                actualRow01.setNetManName(actualRow01.getTareManName());
+                actualRow01.setNetTime(actualRow01.getTareTime());
+                actualRow01.setCreateTime(actualRow01.getTareTime());
+                actualRow01.setCreateManName(actualRow01.getTareManName());
+            }
+            actualRow01.setPredictionType("5");
+            actualRow01.setPredictionNo(grossFirst01.getPredictionNo());
+            actualRow01.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            actualRow01.setNetWeight(grossFirst01.getMeterWeight().subtract(tareFirst01.getMeterWeight()));
+            meterWorkCarActualMapper.insertSelective(actualRow01);
+
+            actualRow02.setActualNo(PublicMethod.IdCreate(3));
+            actualRow02.setNetMode(DbConstants.TYPE);
+            actualRow02.setNote("内倒双委托一次保存期限皮匹配结净");
+            actualRow02.setUploadFlag("1");
+            actualRow02.setIsPreScale("1");
+            actualRow02.setValueFlag("2");
+            if(actualRow02.getGrossTime().compareTo(actualRow02.getTareTime()) >= 0) {
+                actualRow02.setNetSpot3No(actualRow02.getBaseSpot1No());
+                actualRow02.setNetSpot3Name(actualRow02.getBaseSpot1Name());
+                actualRow02.setNetManNo(actualRow02.getGrossManNo());
+                actualRow02.setNetManName(actualRow02.getGrossManName());
+                actualRow02.setNetTime(actualRow02.getGrossTime());
+                actualRow02.setCreateTime(actualRow02.getGrossTime());
+                actualRow02.setCreateManName(actualRow02.getGrossManName());
+            }else {
+                actualRow02.setNetSpot3No(actualRow02.getBaseSpot2No());
+                actualRow02.setNetSpot3Name(actualRow02.getBaseSpot2Name());
+                actualRow02.setNetManNo(actualRow02.getTareManNo());
+                actualRow02.setNetManName(actualRow02.getTareManName());
+                actualRow02.setNetTime(actualRow02.getTareTime());
+                actualRow02.setCreateTime(actualRow02.getTareTime());
+                actualRow02.setCreateManName(actualRow02.getTareManName());
+            }
+            actualRow02.setPredictionType("5");
+            actualRow02.setPredictionNo(grossFirst02.getPredictionNo());
+            actualRow02.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            actualRow02.setNetWeight(grossFirst02.getMeterWeight().subtract(tareFirst02.getMeterWeight()));
+            meterWorkCarActualMapper.insertSelective(actualRow02);
+
+            //预约信息重置委托
+            pre01.setPredictionType("5");
+            pre01.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            pre01.setMeasureStation(actualRow01.getNetSpot3No());
+            pre01.setMeasureStationName(actualRow01.getNetSpot3Name());
+            pre01.setUpdateManNo("system");
+            pre01.setUpdateManName("system");
+            pre01.setUpdateTime(new Date());
+            pre01.setValueFlag("2");
+            pre01.setUploadFlag("1");
+            pre01.setLineDesc("0");
+            preTrackScaleMapper.updateByPrimaryKeySelective(pre01);
+
+            pre02.setPredictionType("5");
+            pre02.setPredictionCombination(scale01.getPredictionNo() + "," + scale02.getPredictionNo());
+            pre02.setMeasureStation(actualRow02.getNetSpot3No());
+            pre02.setMeasureStationName(actualRow02.getNetSpot3Name());
+            pre02.setUpdateManNo("system");
+            pre02.setUpdateManName("system");
+            pre02.setUpdateTime(new Date());
+            pre02.setValueFlag("2");
+            pre02.setUploadFlag("1");
+            pre02.setLineDesc("0");
+            preTrackScaleMapper.updateByPrimaryKeySelective(pre02);
+            updatePreWeight(pre01.getCarNo());
+            updatePreWeight(pre02.getCarNo());
+
+            rm.setSucceed(true);
+            rm.setCode("200");
+            if(grossFlag) {
+                rm.setData(grossModel.getActualFirstNo());
+            }
+            if(tareFlag) {
+                rm.setData(tareModel.getActualFirstNo());
+            }
+            rm.setMessage("操作成功");
+        }catch(Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rm.setMessage("操作异常," + e.getMessage());
+        }
+        return rm;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public RESTfulResult doAddDoubleMuchNet(List<MeterWorkCarActualFirst> grossModels, MeterWorkCarActualFirst tareModel) {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
+        try{
+            //将皮重数据新增
+            tareModel.setActualFirstNo(PublicMethod.IdCreate(3));
+            tareModel.setValueFlag("1");
+            tareModel.setCreateManNo("system");
+            tareModel.setCreateManName("system");
+            tareModel.setCreateTime(new Date());
+            meterWorkCarActualFirstMapper.insertSelective(tareModel);
+
+            for (MeterWorkCarActualFirst grossModel: grossModels){
+                //将毛重数据洁净
+                grossModel.setValueFlag("2");
+                grossModel.setUpdateManNo("system");
+                grossModel.setUpdateManName("system");
+                grossModel.setUpdateTime(new Date());
+                grossModel.setNote("内倒多毛一皮匹配委托洁净");
+                meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(grossModel);
+
+                tareModel = meterWorkCarActualFirstMapper.selectAndMatch(tareModel.getActualFirstNo(), grossModel.getPredictionNo());
+                //多毛回空皮洁净
+                tareModel.setActualFirstNo(PublicMethod.IdCreate(3));
+                tareModel.setMeterMode("2");
+                tareModel.setWeightType("1");
+                tareModel.setDataSource("1");
+                tareModel.setValueFlag("2");
+                tareModel.setIsPreScale("1");
+                tareModel.setPredictionType("1");
+                tareModel.setUpdateManNo("system");
+                tareModel.setUpdateManName("system");
+                tareModel.setUpdateTime(new Date());
+                tareModel.setNote("内倒多毛一皮匹配委托洁净");
+                meterWorkCarActualFirstMapper.insertSelective(tareModel);
+
+                //将委托信息插入结净数据
+                MeterWorkCarActual mwca = meterWorkCarActualMapper.manualAddPre(grossModel.getActualFirstNo(), tareModel.getActualFirstNo(), grossModel.getPredictionNo());
+                //更新结净数据状态
+                mwca.setActualNo(PublicMethod.IdCreate(3));
+                mwca.setNetMode(DbConstants.TYPE);
+                mwca.setNote("内倒多毛一皮匹配委托洁净");
+                mwca.setUploadFlag("1");
+                mwca.setIsPreScale("1");
+                mwca.setValueFlag("2");
+                if(mwca.getGrossTime().compareTo(mwca.getTareTime()) >= 0) {
+                    mwca.setNetSpot3No(mwca.getBaseSpot1No());
+                    mwca.setNetSpot3Name(mwca.getBaseSpot1Name());
+                    mwca.setNetManNo(mwca.getGrossManNo());
+                    mwca.setNetManName(mwca.getGrossManName());
+                    mwca.setNetTime(mwca.getGrossTime());
+                    mwca.setCreateTime(mwca.getGrossTime());
+                    mwca.setCreateManName(mwca.getGrossManName());
+                }else {
+                    mwca.setNetSpot3No(mwca.getBaseSpot2No());
+                    mwca.setNetSpot3Name(mwca.getBaseSpot2Name());
+                    mwca.setNetManNo(mwca.getTareManNo());
+                    mwca.setNetManName(mwca.getTareManName());
+                    mwca.setNetTime(mwca.getTareTime());
+                    mwca.setCreateTime(mwca.getTareTime());
+                    mwca.setCreateManName(mwca.getTareManName());
+                }
+                mwca.setPredictionType("1");
+                mwca.setPredictionNo(mwca.getPredictionNo());
+                mwca.setNetWeight(grossModel.getMeterWeight().subtract(tareModel.getMeterWeight()));
+                meterWorkCarActualMapper.insertSelective(mwca);
+
+                //修改委托
+                PreTrackScale scale = preTrackScaleMapper.selectBypredictionNo(grossModel.getPredictionNo());
+                scale.setPredictionType("1");
+                scale.setMeasureStation(mwca.getNetSpot3No());
+                scale.setMeasureStationName(mwca.getNetSpot3Name());
+                scale.setUpdateManNo("system");
+                scale.setUpdateManName("system");
+                scale.setUpdateTime(new Date());
+                scale.setValueFlag("2");
+                scale.setUploadFlag("1");
+                scale.setLineDesc("0");
+                preTrackScaleMapper.updateByPrimaryKeySelective(scale);
+                updatePreWeight(scale.getCarNo());
+            }
+            doSaveHisTare(tareModel);
+
+            rm.setSucceed();
+            rm.setMessage("多毛一皮结净完成!!");
+            rm.setData(tareModel.getActualFirstNo());
+            rm.setCode("200");
+            return rm;
+        }
+        catch (Exception e){
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rm.setMessage("操作异常,请确认!!>>>" + e.getMessage());
+            return rm;
+        }
+    }
+
     @Override
     public RESTfulResult countFirstByCar(HashMap<String, Object> params) {
         RESTfulResult rm = new RESTfulResult();

+ 6 - 0
src/main/java/com/steerinfo/meterwork/meterworkprewgttype/controller/MeterWorkPreWgttypeController.java

@@ -81,6 +81,7 @@ public class MeterWorkPreWgttypeController extends BaseRESTfulController {
     }
     
     @ApiOperation(value="创建", notes="根据MeterWorkPreWgttype对象创建")
+    @Transactional(rollbackFor = Exception.class)
     @PostMapping(value = "/")
     public RESTfulResult add(@RequestBody HashMap model){
         RESTfulResult rm = failed();
@@ -101,12 +102,14 @@ public class MeterWorkPreWgttypeController extends BaseRESTfulController {
                 preTrackScale.setCarNo(meterWorkPreWgttype.getCarNo());
                 int scale = preTrackScaleService.setPreIndex(preTrackScale);
                 if(scale < 1){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     rm.setMessage("已经存在已使用的委托,不可修改");
                 }
                 return rm;
             }
         } catch (Exception ex) {
             ex.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             rm.setMessage("操作异常,请确认!!");
             return rm;
         }
@@ -161,6 +164,7 @@ public class MeterWorkPreWgttypeController extends BaseRESTfulController {
     }
 
     @ApiOperation(value="根据车号取消皮重预约或者毛重委托", notes="根据车号取消皮重预约或者毛重委托")
+    @Transactional(rollbackFor = Exception.class)
     @PostMapping(value = "/abolishPreWgtType")
     public RESTfulResult abolishPreWgtType(@RequestBody HashMap params){
         RESTfulResult rm = failed();
@@ -169,6 +173,8 @@ public class MeterWorkPreWgttypeController extends BaseRESTfulController {
             rm = meterWorkPreWgttypeService.abolishPreWgtType(carNo);
         } catch (Exception ex) {
             ex.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rm.setMessage("操作异常," + ex.getMessage());
         }
         return rm;
     }

+ 25 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/service/impl/MeterWorkRailwayActualServiceImpl.java

@@ -1,5 +1,6 @@
 package com.steerinfo.meterwork.meterworkrailwayactual.service.impl;
 
+import com.github.pagehelper.util.StringUtil;
 import com.google.inject.internal.cglib.proxy.$FixedValue;
 import com.steerinfo.baseinfo.combaseinfo.mapper.ComBaseInfoMapper;
 import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
@@ -3345,6 +3346,19 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                     grossModel.setUpdateTime(new Date());
                     grossModel.setNote("动态衡匹配委托");
                     meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(grossModel);
+                    MeterWorkRailwayReceived received = meterWorkRailwayReceivedMapper.selectByPrimaryKey(grossModel.getActualFirstNo());
+                    if(received != null) {
+                        if(StringUtils.isEmpty(received.getPredictionNo())) {
+                            received.setRailwayNo(scale.getRailwayNo());
+                            received.setMatterNo(scale.getMatterNo());
+                            received.setMatterName(scale.getMatterName());
+                            received.setReceivingUintNo(scale.getForwardingUnitNo());
+                            received.setForwardingUnitName(scale.getForwardingUnitName());
+                            received.setReceivingUintNo(scale.getReceivingUintNo());
+                            received.setReceivingUintName(scale.getReceivingUintName());
+                            meterWorkRailwayReceivedMapper.updateByPrimaryKeySelective(received);
+                        }
+                    }
                 }
                 if(tareModel != null) {
                     tareModel = meterWorkRailwayActFirstMapper.selectAndMatch(tareModel.getActualFirstNo(), model.getPredictionNo());
@@ -3415,6 +3429,17 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                         grossModel.setUpdateTime(new Date());
                         grossModel.setNote("动态衡撤销委托");
                         meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossModel);
+                        //撤销动态衡从表一次数据
+                        MeterWorkRailwayReceived received = meterWorkRailwayReceivedMapper.selectByPrimaryKey(grossModel.getActualFirstNo());
+                        if(received != null) {
+                            received.setMatterNo(null);
+                            received.setMatterName(null);
+                            received.setReceivingUintNo(null);
+                            received.setForwardingUnitName(null);
+                            received.setReceivingUintNo(null);
+                            received.setReceivingUintName(null);
+                            meterWorkRailwayReceivedMapper.updateByPrimaryKey(received);
+                        }
                     }
                     if(tareModel != null) {
                         tareModel = meterWorkRailwayActFirstMapper.selectAndRemove(tareModel.getActualFirstNo());

+ 1 - 1
src/main/java/com/steerinfo/meterwork/meterworkrailwayactualbak/service/impl/MeterWorkRailwayActualBakServiceImpl.java

@@ -923,7 +923,7 @@ public class MeterWorkRailwayActualBakServiceImpl extends BaseServiceImpl<MeterW
                     preRailwayScaleMapper.updateByPrimaryKeySelective(scale);
                 }
 //                meterWorkRailwayActualBakMapper.deleteByPrimaryKey(model.getActualNo());
-                model.setValueFlag("3");
+                model.setValueFlag("0");
                 meterWorkRailwayActualBakMapper.updateByPrimaryKeySelective(model);
                 num++;
             }