|
@@ -1,15 +1,20 @@
|
|
|
package org.jeecg.modules.billet.storageBill.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.jeecg.common.util.DateUtils;
|
|
|
import org.jeecg.common.util.oConvertUtils;
|
|
|
import org.jeecg.modules.actualControl.billetActual.billetActual.entity.BilletBasicInfo;
|
|
|
import org.jeecg.modules.actualControl.billetActual.billetActual.service.IBilletBasicInfoService;
|
|
|
import org.jeecg.modules.billet.billetHotsend.entity.BilletHotsendDetailsVo;
|
|
|
import org.jeecg.modules.billet.billetHotsend.entity.RollClubCommon;
|
|
|
+import org.jeecg.modules.billet.billetHotsendChangeShift.entity.BilletHotsendChangeShift;
|
|
|
+import org.jeecg.modules.billet.billetHotsendChangeShift.service.IBilletHotsendChangeShiftService;
|
|
|
import org.jeecg.modules.billet.billetHotsendConfig.entity.BilletHotsendTypeConfig;
|
|
|
import org.jeecg.modules.billet.billetHotsendConfig.service.IBilletHotsendTypeConfigService;
|
|
|
+import org.jeecg.modules.billet.operateLog.service.IOperateLogService;
|
|
|
import org.jeecg.modules.billet.rollClubOne.entity.RollClubOneDetails;
|
|
|
import org.jeecg.modules.billet.rollClubOne.service.IRollClubOneDetailsService;
|
|
|
import org.jeecg.modules.billet.rollClubThree.entity.RollClubThreeDetails;
|
|
@@ -20,15 +25,15 @@ import org.jeecg.modules.billet.rollHeight.entity.RollHeightDetails;
|
|
|
import org.jeecg.modules.billet.rollHeight.service.IRollHeightDetailsService;
|
|
|
import org.jeecg.modules.billet.rollOutShipp.entity.RollOutShippDetails;
|
|
|
import org.jeecg.modules.billet.rollOutShipp.service.IRollOutShippDetailsService;
|
|
|
-import org.jeecg.modules.billet.stackingAndLoadingVehicles.service.IStackingDownLogService;
|
|
|
-import org.jeecg.modules.billet.storageBill.entity.BilletHotsendDetails;
|
|
|
-import org.jeecg.modules.billet.storageBill.entity.GetStatsResponse;
|
|
|
-import org.jeecg.modules.billet.storageBill.entity.StorageBill;
|
|
|
+import org.jeecg.modules.billet.storageBill.entity.*;
|
|
|
import org.jeecg.modules.billet.storageBill.mapper.StorageBillMapper;
|
|
|
import org.jeecg.modules.billet.storageBill.service.IStorageBillService;
|
|
|
import org.jeecg.modules.billet.storageCarLog.service.IStorageCarLogService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
@@ -72,7 +77,13 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
private IBilletBasicInfoService billetBasicInfoService;
|
|
|
|
|
|
@Autowired
|
|
|
- private IStackingDownLogService stackingDownLogService;
|
|
|
+ public RedisTemplate redisTemplate;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IBilletHotsendChangeShiftService billetHotsendChangeShiftService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IOperateLogService operateLogService;
|
|
|
|
|
|
@Override
|
|
|
public void subCarTimes(Integer times) {
|
|
@@ -175,4 +186,71 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
public List<StorageBill> findCar(String ccmNo, String destination) {
|
|
|
return storageBillMapper.findCar(ccmNo, destination);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public JSONObject storageBillSave(StorageBill storageBill) {
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
+ try {
|
|
|
+ String keyShiftGroup = String.format("class:shift:group:%s", storageBill.getCcmNo());
|
|
|
+ String keyShift = String.format("class:shift:%s", storageBill.getCcmNo());
|
|
|
+ String shiftGroup = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShiftGroup));
|
|
|
+ String shift = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShift));
|
|
|
+ LambdaQueryWrapper<StorageBill> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(StorageBill::getCcmNo, storageBill.getCcmNo())
|
|
|
+ .eq(StorageBill::getLicensePlate, storageBill.getLicensePlate())
|
|
|
+ .eq(StorageBill::getShiftGroup, shiftGroup)
|
|
|
+ .eq(StorageBill::getShift, shift)
|
|
|
+ .isNull(StorageBill::getOutTime);
|
|
|
+ StorageBill isStorageBill = baseMapper.selectOne(queryWrapper);
|
|
|
+ if (oConvertUtils.isNotEmpty(isStorageBill)) {
|
|
|
+ log.info("查询到存在未发车车辆,车牌号为:{},新增钢坯装运单失败!", storageBill.getLicensePlate());
|
|
|
+ result.put("fail", "存在未发车车辆,新增钢坯装运单失败!");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ storageBill.setArrivalTime(new Date());// 到达时间
|
|
|
+
|
|
|
+ LambdaQueryWrapper<StorageBill> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper1.eq(StorageBill::getCcmNo, storageBill.getCcmNo())
|
|
|
+ .eq(StorageBill::getLicensePlate, storageBill.getLicensePlate())
|
|
|
+ .eq(StorageBill::getShiftGroup, shiftGroup)
|
|
|
+ .eq(StorageBill::getShift, shift).between(StorageBill::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay());
|
|
|
+ long carNum = baseMapper.selectCount(queryWrapper1);
|
|
|
+ storageBill.setCarNum(Math.toIntExact(carNum) + 1);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<StorageBill> queryWrapper2 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper2.eq(StorageBill::getCcmNo, storageBill.getCcmNo())
|
|
|
+ .eq(StorageBill::getShiftGroup, shiftGroup)
|
|
|
+ .eq(StorageBill::getShift, shift).between(StorageBill::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay());
|
|
|
+ long carAllNum = baseMapper.selectCount(queryWrapper2);
|
|
|
+ storageBill.setCarAllNum(Math.toIntExact(carAllNum) + 1);
|
|
|
+
|
|
|
+ // 通过铸机号、班组、班别去查询交班记录并初始化 车次
|
|
|
+ LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper3 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper3.eq(BilletHotsendChangeShift::getCcmNo, storageBill.getCcmNo())
|
|
|
+ .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
|
|
|
+ .eq(BilletHotsendChangeShift::getShift, shift).between(BilletHotsendChangeShift::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay());
|
|
|
+ BilletHotsendChangeShift billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper3);
|
|
|
+ if (oConvertUtils.isNotEmpty(billetHotsendChangeShift)){
|
|
|
+ billetHotsendChangeShift.setOutCarNum(billetHotsendChangeShift.getOutCarNum() + 1);
|
|
|
+ billetHotsendChangeShift.setUpdateTime(new Date());
|
|
|
+ billetHotsendChangeShiftService.updateById(billetHotsendChangeShift);
|
|
|
+ }
|
|
|
+ storageBill.setAmountTotal(0);
|
|
|
+ storageBill.setShiftGroup(shiftGroup);
|
|
|
+ storageBill.setShift(shift);
|
|
|
+ String uniqueCode = DateUtils.date2Str(new Date(), DateUtils.yyyymmddhhmmss.get()) + "-" + storageBill.getCcmNo() + "#" + ShiftEnum.fromCode(shift).name()+ "-" + ShiftGroupEnum.fromCode(shiftGroup).name();
|
|
|
+ storageBill.setUniqueCode(uniqueCode);
|
|
|
+ baseMapper.insert(storageBill);
|
|
|
+ operateLogService.add(storageBill,null,StorageBill.class);
|
|
|
+ result.put("success", "钢坯装运单添加成功!");
|
|
|
+ return result;
|
|
|
+ } catch (Exception e) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ // 记录异常日志
|
|
|
+ log.error("添加钢坯装运单时发生异常", e.getMessage());
|
|
|
+ result.put("fail", "系统错误,请稍后再试!");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|