|
|
@@ -1,5 +1,6 @@
|
|
|
package com.steerinfo.baseinfo.meterbasetermtaredata.service.impl;
|
|
|
|
|
|
+import com.steerinfo.baseinfo.combaseinfo.mapper.ComBaseInfoMapper;
|
|
|
import com.steerinfo.baseinfo.meterbasecar.mapper.MeterBaseCarMapper;
|
|
|
import com.steerinfo.baseinfo.meterbasecar.model.MeterBaseCar;
|
|
|
import com.steerinfo.baseinfo.meterbasehistaredata.mapper.MeterBaseHisTareDataMapper;
|
|
|
@@ -61,6 +62,9 @@ public class MeterBaseTermTareDataServiceImpl extends BaseServiceImpl<MeterBaseT
|
|
|
@Resource
|
|
|
private MeterBaseTermTareDataMapper meterBaseTermTareDataMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ComBaseInfoMapper comBaseInfoMapper;
|
|
|
+
|
|
|
@Resource
|
|
|
private MeterBaseCarMapper meterBaseCarMapper;
|
|
|
|
|
|
@@ -430,6 +434,165 @@ public class MeterBaseTermTareDataServiceImpl extends BaseServiceImpl<MeterBaseT
|
|
|
return rm;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public RESTfulResult doSaveTermByConfig(String id) {
|
|
|
+ RESTfulResult rm = new RESTfulResult();
|
|
|
+ rm.setFailed();
|
|
|
+ try{
|
|
|
+
|
|
|
+ String userId = "";
|
|
|
+ String userName = "";
|
|
|
+ try{
|
|
|
+ UserPayload payload = UserPayload.getCurrUser();
|
|
|
+ userId = payload.getUserCode();
|
|
|
+ userName = payload.getUserName();
|
|
|
+ }catch(Exception e) {
|
|
|
+ userId = "system";
|
|
|
+ userName = "system";
|
|
|
+ }
|
|
|
+
|
|
|
+ HashMap<String, Object> gaugerMap = new HashMap<>();
|
|
|
+ gaugerMap.put("pBaseCode", "001059");
|
|
|
+ gaugerMap.put("memo", userId);
|
|
|
+ List<String> gaugerModels = comBaseInfoMapper.matterNoByBaseCode(gaugerMap);
|
|
|
+
|
|
|
+ if(gaugerModels.size() < 1) {
|
|
|
+ rm.setMessage("该用户<" + userName + ">没有留存期限皮权限!!");
|
|
|
+ rm.setCode("1");
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+ //从一次计量表里取出:车号、计量点编号、计量点名称、计量时间、计量重量
|
|
|
+ String actualFirstNo = id;
|
|
|
+ MeterWorkCarActualFirst modelTemp = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualFirstNo);
|
|
|
+ String carNo = modelTemp.getCarNo();
|
|
|
+ String baseSpotName = modelTemp.getBaseSpotName();
|
|
|
+ String baseSpotNo = modelTemp.getBaseSpotNo();
|
|
|
+ Date meterTime = modelTemp.getCreateTime();
|
|
|
+ BigDecimal meterWeight = modelTemp.getMeterWeight();
|
|
|
+ if(StringUtils.isEmpty(carNo)){
|
|
|
+ rm.setMessage("车号不能为空,请确认!!");
|
|
|
+ rm.setCode("1");
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(baseSpotNo) && StringUtils.isEmpty(baseSpotName)){
|
|
|
+ rm.setMessage("计量点编号或者计量点名称为空,请确认!!");
|
|
|
+ rm.setCode("1");
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+ if(meterTime == null || StringUtils.isEmpty(meterTime.toString())){
|
|
|
+ rm.setMessage("计量时间不能为空!!");
|
|
|
+ rm.setCode("1");
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+
|
|
|
+ HashMap<String, Object> ms = new HashMap<>();
|
|
|
+ ms.put("carNo", carNo);
|
|
|
+ ms.put("validFlag", "0");
|
|
|
+ ms.put("carTypeNo", "001004003");
|
|
|
+ List<MeterBaseCar> models = meterBaseCarMapper.selectByParameters(ms);
|
|
|
+ if(models.size() < 1 ) {
|
|
|
+ rm.setMessage("车辆不是内部车辆不能留存期限皮!!");
|
|
|
+ rm.setCode("1");
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(modelTemp.getWeightType())
|
|
|
+ || !(modelTemp.getWeightType().equals("1") || modelTemp.getWeightType().equals("2"))) {
|
|
|
+ rm.setMessage("计量类型不是皮重类型,请进行毛皮转换成皮重之后再保存期限皮!!");
|
|
|
+ rm.setCode("1");
|
|
|
+ return rm;
|
|
|
+ }else {
|
|
|
+ modelTemp.setWeightType("2");
|
|
|
+ modelTemp.setValueFlag("0");
|
|
|
+ modelTemp.setUpdateManName(userId);
|
|
|
+ modelTemp.setUpdateManNo(userName);
|
|
|
+ modelTemp.setUpdateTime(new Date());
|
|
|
+ modelTemp.setNote("期限皮重保存");
|
|
|
+ meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(modelTemp);
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据车号查询期限表的期限皮重信息
|
|
|
+ MeterBaseSpotInfo spotInfo = meterBaseSpotInfoMapper.selectByPrimaryKey(modelTemp.getBaseSpotNo());
|
|
|
+ HashMap<String, Object> map = new HashMap();
|
|
|
+ map.put("carNo", carNo);
|
|
|
+ map.put("spotAreaNo", spotInfo.getSpotAreaNo());
|
|
|
+ map.put("spotAreaName", spotInfo.getSpotAreaName());
|
|
|
+ MeterBaseTermTareData modelTerm = meterBaseTermTareDataMapper.selectWhereCarNo(map);
|
|
|
+ //设置数据编号
|
|
|
+ MeterBaseTermTareData model = new MeterBaseTermTareData();
|
|
|
+ //设置计量点编号、名称、车号
|
|
|
+ model.setBaseSpotName(baseSpotName);
|
|
|
+ model.setBaseSpotNo(baseSpotNo);
|
|
|
+ model.setSpotAreaNo(spotInfo.getSpotAreaNo());
|
|
|
+ model.setSpotAreaName(spotInfo.getSpotAreaName());
|
|
|
+ model.setCarNo(carNo);
|
|
|
+ //设置皮重时间、开始时间、结束时间、提醒留皮时间
|
|
|
+ HashMap<String, Object> tareTimemap = new HashMap();
|
|
|
+ tareTimemap.put("valueFlag", "0");
|
|
|
+ MeterBaseTermTareTime tareTimeModel = meterBaseTermTareTimeMapper.selectByMap(tareTimemap);
|
|
|
+ if(tareTimeModel != null){
|
|
|
+ Date endDate = new Date();
|
|
|
+ Date warnDate = new Date();
|
|
|
+ int day = tareTimeModel.getFixedValue();
|
|
|
+ endDate.setDate(endDate.getDate()+day);
|
|
|
+ warnDate.setDate(warnDate.getDate()+tareTimeModel.getWarnValue());
|
|
|
+ model.setStartTime(new Date());
|
|
|
+ model.setEndTime(new Date(endDate.getTime()));
|
|
|
+ model.setWarnTime(new Date(warnDate.getTime()));
|
|
|
+ }else{
|
|
|
+ rm.setMessage("计量人编号或者计量员为空,请确认");
|
|
|
+ rm.setCode("1");
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+ model.setMeterTime(meterTime);
|
|
|
+ //设置状态(0:有效;1:无效)、创建人编号、创建人、创建时间
|
|
|
+ model.setValueFlag("0");
|
|
|
+ model.setCreateManNo(userId);
|
|
|
+ model.setCreateManName(userName);
|
|
|
+ model.setCreateTime(new Date());
|
|
|
+ //设置皮重次数(默认7次)、设置皮重
|
|
|
+ model.setMeterNum(7L);
|
|
|
+ model.setMeterWeight(meterWeight);
|
|
|
+ //期限皮表未查到车号信息,直接插入,否则,更新车号信息
|
|
|
+ if(modelTerm == null){
|
|
|
+ model.setUpWeight(meterWeight.longValue());
|
|
|
+ model.setAvgWeight(meterWeight.longValue());
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
+ model.setDataNo(sdf.format(new Date()));
|
|
|
+ meterBaseTermTareDataMapper.insertSelective(model);
|
|
|
+ }else if(modelTerm.getCarNo().equals(carNo)){
|
|
|
+ //设置上一次皮重、平均皮重
|
|
|
+ model.setUpWeight(modelTerm.getMeterWeight().longValue()); //BigDecimal转long类型
|
|
|
+ long avgValue = modelTerm.getAvgWeight() == null? 0: modelTerm.getAvgWeight();
|
|
|
+ long avg =avgValue + modelTerm.getMeterWeight().longValue();
|
|
|
+ model.setAvgWeight(avg/2);
|
|
|
+ model.setDataNo(modelTerm.getDataNo());
|
|
|
+ meterBaseTermTareDataMapper.updateByPrimaryKeySelective(model);
|
|
|
+ }
|
|
|
+
|
|
|
+ MeterBaseOperationLog logModel = new MeterBaseOperationLog();
|
|
|
+ logModel.setId(PublicMethod.IdCreate(2));
|
|
|
+ logModel.setCreateManNo(userId);
|
|
|
+ logModel.setCreateManName(userName);
|
|
|
+ logModel.setCreateTime(new Date());
|
|
|
+ logModel.setOperationPage("web端-汽车衡一次数据维护");
|
|
|
+ logModel.setOperationFunction("留存期限皮");
|
|
|
+ logModel.setOperationId(modelTemp.getActualFirstNo());
|
|
|
+ logModel.setOperationPredictionNo(modelTemp.getPredictionNo());
|
|
|
+ logModel.setOperationCarnNo(modelTemp.getCarNo());
|
|
|
+ logModel.setOperationBeforeFix("重量:" + modelTemp.getMeterWeight().toString());
|
|
|
+ meterBaseOperationLogMapper.insertSelective(logModel);
|
|
|
+
|
|
|
+ rm.setSucceed();
|
|
|
+ rm.setCode("200");
|
|
|
+ rm.setMessage("操作成功");
|
|
|
+ }catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ rm.setMessage("操作失败," + e.getMessage());
|
|
|
+ }
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public RESTfulResult listBycarNo(HashMap<String, Object> parmas) {
|
|
|
RESTfulResult rm = new RESTfulResult();
|