Browse Source

新增了“混装混卸”接口

duyong 4 years ago
parent
commit
24fb1e85f0

+ 3 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractual/service/impl/MeterWorkCarActualServiceImpl.java

@@ -347,10 +347,13 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
                 // 根据一次计量数据和预报数据生成净重相关信息
                 MeterWorkCarActualFirst first1 = meterWorkCarActualFirstMapper.selectAndMatch(actualFirstNo, predictionNo);
                 BeanUtils.copyProperties(first1,mwcaf1);
+                mwcaf1.setIsPreScale("1");
                 MeterWorkCarActualFirst first2 = meterWorkCarActualFirstMapper.selectAndMatch(dataNo, predictionNo);
                 BeanUtils.copyProperties(first2, mwcaf2);
+                mwcaf1.setIsPreScale("1");
                 MeterWorkCarActual mwca1 = meterWorkCarActualMapper.manualAddPre(actualFirstNo, dataNo, predictionNo);
                 BeanUtils.copyProperties(mwca1, actualRow);
+                actualRow.setIsPreScale("1");
             } else {
                 MeterWorkCarActual mwca2 = meterWorkCarActualMapper.manualAdd(actualFirstNo, dataNo);
                 BeanUtils.copyProperties(mwca2, actualRow);

+ 32 - 1
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/controller/MeterWorkCarActualFirstController.java

@@ -865,11 +865,42 @@ public class MeterWorkCarActualFirstController extends BaseRESTfulController {
         }
     }
 
-    @ApiOperation(value = "混装混卸", notes = "混装混卸")
+    @ApiOperation(value = "混装", notes = "混装")
     //@RequiresPermissions("meterworkcaractual:view")
     @PostMapping(value = "/mixedLoading")
     public RESTfulResult mixedLoading(@RequestBody HashMap parmas) {
         try {
+            String actualNo1 = parmas.get("actualNo1").toString();
+            String actualNo2 = parmas.get("actualNo2").toString();
+            String actualNo3 = parmas.get("actualNo3").toString();
+            String predictionNo1 = parmas.get("predictionNo1").toString();
+            String predictionNo2 = parmas.get("predictionNo2").toString();
+            String msg = meterWorkCarActualFirstService.mixedLoading(actualNo1, actualNo2,actualNo3,predictionNo1,predictionNo2);
+            if (msg != "" || !msg.equals("")){
+                return failed(null,msg);
+            }
+            return success();
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            throw new MarkerMetException(500, "操作异常!!");
+        }
+    }
+
+    @ApiOperation(value = "混卸", notes = "混卸")
+    //@RequiresPermissions("meterworkcaractual:view")
+    @PostMapping(value = "/mixedDischarge")
+    public RESTfulResult mixedDischarge(@RequestBody HashMap parmas) {
+        try {
+            String actualNo1 = parmas.get("actualNo1").toString();
+            String actualNo2 = parmas.get("actualNo2").toString();
+            String actualNo3 = parmas.get("actualNo3").toString();
+            String predictionNo1 = parmas.get("predictionNo1").toString();
+            String predictionNo2 = parmas.get("predictionNo2").toString();
+
+            String msg = meterWorkCarActualFirstService.mixedDischarge(actualNo1, actualNo2,actualNo3,predictionNo1,predictionNo2);
+            if (msg != "" || !msg.equals("")){
+                return failed(null,msg);
+            }
             return success();
         } catch (Exception ex) {
             ex.printStackTrace();

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

@@ -104,4 +104,7 @@ public interface IMeterWorkCarActualFirstService extends IBaseService<MeterWorkC
     List<String> distinctCarNo(String carNo, String startTime, String endTime, String dataSource);
 
     String mixedLoading(String actualNo1, String actualNo2,String actualNo3, String predictionNo1,String predictionNo2);
+
+    String mixedDischarge(String actualNo1, String actualNo2,String actualNo3, String predictionNo1,String predictionNo2);
+
 }

+ 270 - 14
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/impl/MeterWorkCarActualFirstServiceImpl.java

@@ -58,6 +58,7 @@ import com.steerinfo.util.FieldsCollector;
 import com.steerinfo.util.HttpRequest;
 import com.steerinfo.util.StringUtils;
 import io.micrometer.core.instrument.Meter;
+import oracle.jdbc.proxy.annotation.Pre;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -2609,23 +2610,278 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
 
     @Override
     public String mixedLoading(String actualNo1, String actualNo2, String actualNo3, String predictionNo1, String predictionNo2) {
-        //查询所有的一次数据
-        MeterWorkCarActualFirst mwcaf1 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo1);
-        MeterWorkCarActualFirst mwcaf2 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo2);
-        MeterWorkCarActualFirst mwcaf3 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo3);
+        try{
+            //查询所有的一次数据
+            MeterWorkCarActualFirst mwcaf1 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo1);
+            MeterWorkCarActualFirst mwcaf2 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo2);
+            MeterWorkCarActualFirst mwcaf3 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo2);
+            MeterWorkCarActualFirst mwcaf4 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo3);
+
+            //查询所有的委托数据
+            PreTrackScale pts1 = preTrackScaleMapper.selectByPrimaryKey(predictionNo1);
+            PreTrackScale pts2 = preTrackScaleMapper.selectByPrimaryKey(predictionNo2);
+
+            //定义新的结净数据实体
+            MeterWorkCarActual actualRow1 = new MeterWorkCarActual();
+            MeterWorkCarActual actualRow2 = new MeterWorkCarActual();
+
+            //判断是否为混装逻辑
+            if(mwcaf1.getMeterWeight().compareTo(mwcaf2.getMeterWeight()) == 1 || mwcaf1.getMeterWeight().compareTo(mwcaf4.getMeterWeight()) == 1 || mwcaf2.getMeterWeight().compareTo(mwcaf4.getMeterWeight()) == 1){
+                return "不为混装逻辑!!";
+            }
 
-        //查询所有的委托数据
-        PreTrackScale pts1 = preTrackScaleMapper.selectByPrimaryKey(predictionNo1);
-        PreTrackScale pts2 = preTrackScaleMapper.selectByPrimaryKey(predictionNo2);
+            //判断一次数据是否存在
+            if (mwcaf1 == null || mwcaf2 == null || mwcaf3 == null || mwcaf4 == null) {
+                return "未查询到相应的一次数据!!";
+            }
 
-        if (mwcaf1 == null) {
-            return "未查询到相应的一次数据!!";
-        }
-        if (mwcaf2 == null) {
-            return "未查询到相应的一次数据!!";
+            //判断一次数据是否已结净
+            if (mwcaf1.getValueFlag().equals("2") || mwcaf2.getValueFlag().equals("2") || mwcaf3.getValueFlag().equals("2") || mwcaf4.getValueFlag().equals("2")) {
+                return "存在已结净的一次数据!!";
+            }
+
+            //判断委托数据是否存在
+            if (pts1 == null || pts2 == null) {
+                return "未查询到相应的委托数据!!";
+            }
+
+            //判断委托数据是否已使用
+            if (!pts1.getValueFlag().equals("1") || !pts1.getValueFlag().equals("1")) {
+                return "委托不是未使用状态!!";
+            }
+
+            //将委托中的编号和收发货的等数据拷贝进一次数据中
+            MeterWorkCarActualFirst first1 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo1, predictionNo1);
+            BeanUtils.copyProperties(first1,mwcaf1);
+            MeterWorkCarActualFirst first2 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo2, predictionNo1);
+            BeanUtils.copyProperties(first2, mwcaf2);
+            MeterWorkCarActualFirst first3 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo2, predictionNo2);
+            BeanUtils.copyProperties(first3,mwcaf3);
+            MeterWorkCarActualFirst first4 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo3, predictionNo2);
+            BeanUtils.copyProperties(first4, mwcaf4);
+
+            //将委托中的编号和收发货单位和一次数据等数据拷贝进结净数据中
+            MeterWorkCarActual mwca1 = meterWorkCarActualMapper.manualAddPre(actualNo2, actualNo1, predictionNo1);
+            BeanUtils.copyProperties(mwca1, actualRow1);
+            MeterWorkCarActual mwca2 = meterWorkCarActualMapper.manualAddPre(actualNo3, 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);
+
+            //更新一次数据
+            //更新第一次皮重数据库
+            mwcaf1.setValueFlag(DbConstants.NET);
+            mwcaf1.setUpdateManName("system");
+            mwcaf1.setUpdateManName("二次计量洁净更新");
+            mwcaf1.setUpdateTime(new Date());
+            mwcaf1.setIsPreScale("1");
+            meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaf1);
+            //更新第一次毛重数据库
+            mwcaf2.setValueFlag(DbConstants.NET);
+            mwcaf2.setUpdateManName("system");
+            mwcaf2.setUpdateManName("二次计量洁净更新");
+            mwcaf2.setUpdateTime(new Date());
+            mwcaf2.setIsPreScale("1");
+            meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaf2);
+            //添加第一次皮重数据库
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+            String afl = sdf.format(new Date());
+            String actualFirstNo = sdf.format(new Date()) + meterWorkCarActualFirstMapper.getNewID(afl);
+            mwcaf3.setActualFirstNo(actualFirstNo);
+            mwcaf3.setValueFlag(DbConstants.NET);
+            mwcaf3.setUpdateManName("system");
+            mwcaf3.setUpdateManName("二次计量洁净更新");
+            mwcaf3.setUpdateTime(new Date());
+            mwcaf3.setIsPreScale("1");
+            meterWorkCarActualFirstMapper.insertSelective(mwcaf3);
+            //更新第二次毛重数据库
+            mwcaf4.setValueFlag(DbConstants.NET);
+            mwcaf4.setUpdateManName("system");
+            mwcaf4.setUpdateManName("二次计量洁净更新");
+            mwcaf4.setUpdateTime(new Date());
+            mwcaf4.setIsPreScale("1");
+            meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaf4);
+
+            //添加结净数据
+            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(mwcaf2.getMeterWeight().subtract(mwcaf1.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(mwcaf4.getMeterWeight().subtract(mwcaf3.getMeterWeight()));
+            meterWorkCarActualMapper.insertSelective(actualRow2);
+        }
+        catch (Exception e){
+            e.printStackTrace();
+            return "操作异常,请确认";
         }
-        if (mwcaf3 == null) {
-            return "未查询到相应的一次数据!!";
+        return "";
+    }
+
+    @Override
+    public String mixedDischarge(String actualNo1, String actualNo2, String actualNo3, String predictionNo1, String predictionNo2) {
+        try{
+            //查询所有的一次数据
+            MeterWorkCarActualFirst mwcaf1 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo1);
+            MeterWorkCarActualFirst mwcaf2 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo2);
+            MeterWorkCarActualFirst mwcaf3 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo2);
+            MeterWorkCarActualFirst mwcaf4 = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualNo3);
+
+            //查询所有的委托数据
+            PreTrackScale pts1 = preTrackScaleMapper.selectByPrimaryKey(predictionNo1);
+            PreTrackScale pts2 = preTrackScaleMapper.selectByPrimaryKey(predictionNo2);
+
+            //定义新的结净数据实体
+            MeterWorkCarActual actualRow1 = new MeterWorkCarActual();
+            MeterWorkCarActual actualRow2 = new MeterWorkCarActual();
+
+            //判断是否为混装逻辑
+            if(mwcaf1.getMeterWeight().compareTo(mwcaf2.getMeterWeight()) == -1 || mwcaf1.getMeterWeight().compareTo(mwcaf4.getMeterWeight()) == -1 || mwcaf2.getMeterWeight().compareTo(mwcaf4.getMeterWeight()) == -1){
+                return "不为混装逻辑!!";
+            }
+
+            //判断一次数据是否存在
+            if (mwcaf1 == null || mwcaf2 == null || mwcaf3 == null || mwcaf4 == null) {
+                return "未查询到相应的一次数据!!";
+            }
+
+            //判断一次数据是否已结净
+            if (mwcaf1.getValueFlag().equals("2") || mwcaf2.getValueFlag().equals("2") || mwcaf3.getValueFlag().equals("2") || mwcaf4.getValueFlag().equals("2")) {
+                return "存在已结净的一次数据!!";
+            }
+
+            //判断委托数据是否存在
+            if (pts1 == null || pts2 == null) {
+                return "未查询到相应的委托数据!!";
+            }
+
+            //判断委托数据是否已使用
+            if (!pts1.getValueFlag().equals("1") || !pts1.getValueFlag().equals("1")) {
+                return "委托不是未使用状态!!";
+            }
+
+            //将委托中的编号和收发货的等数据拷贝进一次数据中
+            MeterWorkCarActualFirst first1 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo1, predictionNo1);
+            BeanUtils.copyProperties(first1,mwcaf1);
+            MeterWorkCarActualFirst first2 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo2, predictionNo1);
+            BeanUtils.copyProperties(first2, mwcaf2);
+            MeterWorkCarActualFirst first3 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo2, predictionNo2);
+            BeanUtils.copyProperties(first3,mwcaf3);
+            MeterWorkCarActualFirst first4 = meterWorkCarActualFirstMapper.selectAndMatch(actualNo3, predictionNo2);
+            BeanUtils.copyProperties(first4, mwcaf4);
+
+            //将委托中的编号和收发货单位和一次数据等数据拷贝进结净数据中
+            MeterWorkCarActual mwca1 = meterWorkCarActualMapper.manualAddPre(actualNo1, actualNo2, predictionNo1);
+            BeanUtils.copyProperties(mwca1, actualRow1);
+            MeterWorkCarActual mwca2 = meterWorkCarActualMapper.manualAddPre(actualNo2, actualNo3, 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);
+
+            //更新一次数据
+            //更新第一次毛重数据库
+            mwcaf1.setValueFlag(DbConstants.NET);
+            mwcaf1.setUpdateManName("system");
+            mwcaf1.setUpdateManName("二次计量洁净更新");
+            mwcaf1.setUpdateTime(new Date());
+            mwcaf1.setIsPreScale("1");
+            meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaf1);
+            //更新第一次皮重数据库
+            mwcaf2.setValueFlag(DbConstants.NET);
+            mwcaf2.setUpdateManName("system");
+            mwcaf2.setUpdateManName("二次计量洁净更新");
+            mwcaf2.setUpdateTime(new Date());
+            mwcaf2.setIsPreScale("1");
+            meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaf2);
+            //添加第一次毛重数据库
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+            String afl = sdf.format(new Date());
+            String actualFirstNo = sdf.format(new Date()) + meterWorkCarActualFirstMapper.getNewID(afl);
+            mwcaf3.setActualFirstNo(actualFirstNo);
+            mwcaf3.setValueFlag(DbConstants.NET);
+            mwcaf3.setUpdateManName("system");
+            mwcaf3.setUpdateManName("二次计量洁净更新");
+            mwcaf3.setUpdateTime(new Date());
+            mwcaf3.setIsPreScale("1");
+            meterWorkCarActualFirstMapper.insertSelective(mwcaf3);
+            //更新第二次皮重数据库
+            mwcaf4.setValueFlag(DbConstants.NET);
+            mwcaf4.setUpdateManName("system");
+            mwcaf4.setUpdateManName("二次计量洁净更新");
+            mwcaf4.setUpdateTime(new Date());
+            mwcaf4.setIsPreScale("1");
+            meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaf4);
+
+            //添加结净数据
+            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(mwcaf1.getMeterWeight().subtract(mwcaf2.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(mwcaf3.getMeterWeight().subtract(mwcaf4.getMeterWeight()));
+            meterWorkCarActualMapper.insertSelective(actualRow2);
+        }
+        catch (Exception e){
+            e.printStackTrace();
+            return "操作异常,请确认";
         }
         return "";
     }