|
@@ -275,18 +275,33 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<Map<String, Object>> getTCntrnoMessage(TCntrno tCntrno) {
|
|
|
- StringBuffer stringBuffer = new StringBuffer();
|
|
|
- List<String> list = tCntrMapper.selectTCntrFNo();
|
|
|
- String sql = null;
|
|
|
+ public List<Map<String, Object>> getTCntrnoMessage(TCntrno tCntrno,List<String> list ) {
|
|
|
+ List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
+ StringBuffer stringBuffer = new StringBuffer();//查类型数据
|
|
|
+ StringBuffer standBuffer = new StringBuffer();//查空重
|
|
|
+ StringBuffer bareWeightBuffer = new StringBuffer();//查好坏
|
|
|
+ String sql = null;//查类型数据
|
|
|
+ String stand = null;//查空重
|
|
|
+ String bareWeight = null;//查好坏
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
for (String s : list) {
|
|
|
stringBuffer.append("MAX( CASE WHEN tt.f_no = '" + s);
|
|
|
stringBuffer.append("' THEN tt.typeidCount ELSE 0 END ) AS '" + s + "',");
|
|
|
+ standBuffer.append("MAX( CASE WHEN a.typeName ='"+s+"' AND a.dict_label = '空'");
|
|
|
+ standBuffer.append("THEN a.efCount ELSE 0 END ) AS '" + s + "空',");
|
|
|
+ standBuffer.append("MAX( CASE WHEN a.typeName ='"+s+"' AND a.dict_label = '重'");
|
|
|
+ standBuffer.append("THEN a.efCount ELSE 0 END ) AS '" + s + "重',");
|
|
|
+ bareWeightBuffer.append("MAX( CASE WHEN b.typeName ='"+s+"' AND b.dict_label = '好'");
|
|
|
+ bareWeightBuffer.append("THEN b.statusCount ELSE 0 END ) AS '" + s + "好',");
|
|
|
+ bareWeightBuffer.append("MAX( CASE WHEN b.typeName ='"+s+"' AND b.dict_label = '坏'");
|
|
|
+ bareWeightBuffer.append("THEN b.statusCount ELSE 0 END ) AS '" + s + "坏',");
|
|
|
}
|
|
|
sql = stringBuffer.subSequence(0, stringBuffer.length() - 1).toString();
|
|
|
+ stand = standBuffer.subSequence(0, standBuffer.length() - 1).toString();
|
|
|
+ bareWeight = bareWeightBuffer.subSequence(0, bareWeightBuffer.length() - 1).toString();
|
|
|
+ mapList = tCntrnoMapper.getTCntrnoMessage(sql,stand,bareWeight,tCntrno);
|
|
|
}
|
|
|
- return tCntrnoMapper.getTCntrnoMessage(sql, tCntrno);
|
|
|
+ return mapList;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -298,6 +313,8 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
String updateEFName = null;//空重
|
|
|
if (StringUtils.isNotEmpty(tCntrno.getAddressName())) {
|
|
|
address = tCntrno.getAddressName();
|
|
|
+ }else {
|
|
|
+ tCntrno.setfUpdateaddress("0");
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(tCntrno.getTypeidName())) {
|
|
|
typeidName = tCntrno.getTypeidName();
|
|
@@ -318,11 +335,18 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
List<String> key = new ArrayList<>();
|
|
|
key.add("地点");
|
|
|
List<String> list = tCntrMapper.selectTCntrFNo();
|
|
|
+ List<String> mapList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ for (String s : list) {
|
|
|
+ mapList.add(s+"空");
|
|
|
+ mapList.add(s+"重");
|
|
|
+ mapList.add(s+"好");
|
|
|
+ mapList.add(s+"坏");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list.addAll(mapList);
|
|
|
+ Collections.sort(list);
|
|
|
key.addAll(list);
|
|
|
- key.add("空");
|
|
|
- key.add("重");
|
|
|
- key.add("好");
|
|
|
- key.add("坏");
|
|
|
return key;
|
|
|
}
|
|
|
|
|
@@ -620,13 +644,18 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
case "动态日期":
|
|
|
//设置单元格类型
|
|
|
cell.setCellType(CellType.STRING);
|
|
|
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
|
|
|
+ String dataFormatString = cell.getStringCellValue();
|
|
|
+ if (StringUtils.isEmpty(dataFormatString)) {
|
|
|
return AjaxResult.error("Excel箱信息数据第" + line + "行数据缺少动态日期");
|
|
|
}
|
|
|
- Date tDate = new Date();
|
|
|
- long localOffset = tDate.getTimezoneOffset() * 60000; //系统时区偏移 1900/1/1 到 1970/1/1 的 25569 天
|
|
|
- tDate.setTime((long) ((Double.valueOf(cell.getStringCellValue()) - 25569) * 24 * 3600 * 1000 + localOffset));
|
|
|
- companyMsg.setfUpdatetime(tDate);
|
|
|
+ Date parse = new Date();
|
|
|
+ try {
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
|
+ parse = simpleDateFormat.parse(dataFormatString);
|
|
|
+ }catch (Exception e){
|
|
|
+ return AjaxResult.error("日期格式有误,正确格式如: 2021/9/2 15:11:22");
|
|
|
+ }
|
|
|
+ companyMsg.setfUpdatetime(parse);
|
|
|
break;
|
|
|
case "船名":
|
|
|
//设置单元格类型
|
|
@@ -732,6 +761,10 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
List<TCntrno> addressMessageList = tCntrnoMapper.getBoxAddressMessage();
|
|
|
//获取箱动态信息
|
|
|
List<SysDictData> fOpcTnsTaTus = sysDictDataMapper.selectDictDataByType("f_opctnstatus");
|
|
|
+ //获取箱空重状态
|
|
|
+ List<SysDictData> fUpdateEF = sysDictDataMapper.selectDictDataByType("f_updateEF");
|
|
|
+ //获取箱好坏状态
|
|
|
+ List<SysDictData> fCnTrStatus = sysDictDataMapper.selectDictDataByType("f_cntrstatus");
|
|
|
//在获取港口下的堆场对应的箱信息
|
|
|
if (CollectionUtils.isNotEmpty(boxPortMessage) && CollectionUtils.isNotEmpty(fOpcTnsTaTus)){
|
|
|
for (TCntrno cntrno : boxPortMessage) {
|
|
@@ -741,27 +774,20 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
if (CollectionUtils.isNotEmpty(addressMessageList)){
|
|
|
for (TCntrno trno : addressMessageList) {
|
|
|
if (cntrno.getAddressName().equals(trno.getPortName()) && !trno.getAddressName().equals("在船")){
|
|
|
+ List<BoxMessage> boxMessageList = new ArrayList<>();
|
|
|
BoxAddressMessage boxAddressMessage = new BoxAddressMessage();
|
|
|
boxAddressMessage.setAddress(trno.getAddressName());
|
|
|
- boxAddressMessage.setNumberSize(fOpcTnsTaTus.size());
|
|
|
- List<BoxMessage> boxMessageList = new ArrayList<>();
|
|
|
- for (SysDictData opcTnsTaTus : fOpcTnsTaTus) {
|
|
|
- TCntrno tro = new TCntrno();
|
|
|
- BoxMessage boxMessage = new BoxMessage();
|
|
|
- tro.setfUpdateaddress(trno.getfUpdateaddress());
|
|
|
- tro.setfOpctnstatus(opcTnsTaTus.getDictValue());
|
|
|
- BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro);
|
|
|
- if (message != null){
|
|
|
- boxMessage = message;
|
|
|
- }
|
|
|
- boxMessage.setOpcTnStatus(opcTnsTaTus.getDictLabel());
|
|
|
- boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
- +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP()
|
|
|
- +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK());
|
|
|
- boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
- +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2
|
|
|
- +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2);
|
|
|
- boxMessageList.add(boxMessage);
|
|
|
+ boxAddressMessage.setNumberSize(fOpcTnsTaTus.size()+fUpdateEF.size()+fCnTrStatus.size());
|
|
|
+ List<BoxMessage> opcTnsTaTus = this.getOpcTnsTaTus(fOpcTnsTaTus, trno);//获取调箱状态的箱新
|
|
|
+ List<BoxMessage> updateEF = this.getUpdateEF(fUpdateEF, trno);//获取空重的箱信息
|
|
|
+ List<BoxMessage> cnTrStatus = this.getCnTrStatus(fCnTrStatus, trno);//获取好坏的箱信息
|
|
|
+ if (CollectionUtils.isNotEmpty(opcTnsTaTus)){
|
|
|
+ boxMessageList.addAll(opcTnsTaTus);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(updateEF)){
|
|
|
+ boxMessageList.addAll(updateEF);
|
|
|
+ }if (CollectionUtils.isNotEmpty(cnTrStatus)){
|
|
|
+ boxMessageList.addAll(cnTrStatus);
|
|
|
}
|
|
|
boxAddressMessage.setBoxMessages(boxMessageList);
|
|
|
boxAddressMessageList.add(boxAddressMessage);
|
|
@@ -770,28 +796,20 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
List<TCntrno> boxRemark = tCntrnoMapper.getBoxRemark(trno.getfUpdateaddress());
|
|
|
if (CollectionUtils.isNotEmpty(boxRemark)){
|
|
|
for (TCntrno tCntrno : boxRemark) {
|
|
|
+ List<BoxMessage> boxMessageList = new ArrayList<>();
|
|
|
BoxAddressMessage boxAddressMessage = new BoxAddressMessage();
|
|
|
boxAddressMessage.setAddress(trno.getAddressName()+tCntrno.getRemark());
|
|
|
- boxAddressMessage.setNumberSize(fOpcTnsTaTus.size());
|
|
|
- List<BoxMessage> boxMessageList = new ArrayList<>();
|
|
|
- for (SysDictData opcTnsTaTus : fOpcTnsTaTus) {
|
|
|
- TCntrno tro = new TCntrno();
|
|
|
- BoxMessage boxMessage = new BoxMessage();
|
|
|
- tro.setfUpdateaddress(trno.getfUpdateaddress());
|
|
|
- tro.setfOpctnstatus(opcTnsTaTus.getDictValue());
|
|
|
- tro.setRemark(tCntrno.getRemark());
|
|
|
- BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro);
|
|
|
- if (message != null){
|
|
|
- boxMessage = message;
|
|
|
- }
|
|
|
- boxMessage.setOpcTnStatus(opcTnsTaTus.getDictLabel());
|
|
|
- boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
- +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP()
|
|
|
- +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK());
|
|
|
- boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
- +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2
|
|
|
- +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2);
|
|
|
- boxMessageList.add(boxMessage);
|
|
|
+ boxAddressMessage.setNumberSize(fOpcTnsTaTus.size()+fUpdateEF.size()+fCnTrStatus.size());
|
|
|
+ List<BoxMessage> opcTnsTaTus = this.getOpcTnsTaTus(fOpcTnsTaTus, trno);//获取调箱状态的箱新
|
|
|
+ List<BoxMessage> updateEF = this.getUpdateEF(fUpdateEF, trno);//获取空重的箱信息
|
|
|
+ List<BoxMessage> cnTrStatus = this.getCnTrStatus(fCnTrStatus, trno);//获取好坏的箱信息
|
|
|
+ if (CollectionUtils.isNotEmpty(opcTnsTaTus)){
|
|
|
+ boxMessageList.addAll(opcTnsTaTus);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(updateEF)){
|
|
|
+ boxMessageList.addAll(updateEF);
|
|
|
+ }if (CollectionUtils.isNotEmpty(cnTrStatus)){
|
|
|
+ boxMessageList.addAll(cnTrStatus);
|
|
|
}
|
|
|
boxAddressMessage.setBoxMessages(boxMessageList);
|
|
|
boxAddressMessageList.add(boxAddressMessage);
|
|
@@ -801,7 +819,7 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
}
|
|
|
}
|
|
|
boxDistributionStatistics.setBoxAddressMessages(boxAddressMessageList);
|
|
|
- boxDistributionStatistics.setNumber(fOpcTnsTaTus.size()*boxAddressMessageList.size());
|
|
|
+ boxDistributionStatistics.setNumber(fOpcTnsTaTus.size()*boxAddressMessageList.size()+fUpdateEF.size()*boxAddressMessageList.size()+fCnTrStatus.size()*boxAddressMessageList.size());
|
|
|
list.add(boxDistributionStatistics);
|
|
|
}
|
|
|
|
|
@@ -846,4 +864,83 @@ public class TCntrnoServiceImpl implements ITCntrnoService {
|
|
|
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
|
|
|
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取调箱动态的箱信息
|
|
|
+ * @param fOpcTnsTaTus
|
|
|
+ * @param trno
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<BoxMessage> getOpcTnsTaTus(List<SysDictData> fOpcTnsTaTus,TCntrno trno){
|
|
|
+ List<BoxMessage> boxMessageList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(fOpcTnsTaTus)){
|
|
|
+ for (SysDictData opcTnsTaTus : fOpcTnsTaTus) {
|
|
|
+ TCntrno tro = new TCntrno();
|
|
|
+ BoxMessage boxMessage = new BoxMessage();
|
|
|
+ tro.setfUpdateaddress(trno.getfUpdateaddress());
|
|
|
+ tro.setfOpctnstatus(opcTnsTaTus.getDictValue());
|
|
|
+ BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro);
|
|
|
+ if (message != null){
|
|
|
+ boxMessage = message;
|
|
|
+ }
|
|
|
+ boxMessage.setOpcTnStatus(opcTnsTaTus.getDictLabel());
|
|
|
+ boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
+ +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP()
|
|
|
+ +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK());
|
|
|
+ boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
+ +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2
|
|
|
+ +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2);
|
|
|
+ boxMessageList.add(boxMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return boxMessageList;
|
|
|
+ }
|
|
|
+ public List<BoxMessage> getUpdateEF(List<SysDictData> fUpdateEF,TCntrno trno){
|
|
|
+ List<BoxMessage> boxMessageList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(fUpdateEF)){
|
|
|
+ for (SysDictData sysDictData : fUpdateEF) {
|
|
|
+ TCntrno tro = new TCntrno();
|
|
|
+ BoxMessage boxMessage = new BoxMessage();
|
|
|
+ tro.setfUpdateaddress(trno.getfUpdateaddress());
|
|
|
+ tro.setfUpdateef(sysDictData.getDictValue());
|
|
|
+ BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro);
|
|
|
+ if (message != null){
|
|
|
+ boxMessage = message;
|
|
|
+ }
|
|
|
+ boxMessage.setOpcTnStatus(sysDictData.getDictLabel());
|
|
|
+ boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
+ +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP()
|
|
|
+ +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK());
|
|
|
+ boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
+ +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2
|
|
|
+ +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2);
|
|
|
+ boxMessageList.add(boxMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return boxMessageList;
|
|
|
+ }
|
|
|
+ public List<BoxMessage> getCnTrStatus(List<SysDictData> fCnTrStatus,TCntrno trno){
|
|
|
+ List<BoxMessage> boxMessageList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(fCnTrStatus)){
|
|
|
+ for (SysDictData cnTrStatus : fCnTrStatus) {
|
|
|
+ TCntrno tro = new TCntrno();
|
|
|
+ BoxMessage boxMessage = new BoxMessage();
|
|
|
+ tro.setfUpdateaddress(trno.getfUpdateaddress());
|
|
|
+ tro.setfCntrstatus(cnTrStatus.getDictValue());
|
|
|
+ BoxMessage message = tCntrnoMapper.boxDistributionStatistics(tro);
|
|
|
+ if (message != null){
|
|
|
+ boxMessage = message;
|
|
|
+ }
|
|
|
+ boxMessage.setOpcTnStatus(cnTrStatus.getDictLabel());
|
|
|
+ boxMessage.setUNIT(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
+ +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()+boxMessage.getFORTYGP()
|
|
|
+ +boxMessage.getFORTYHC()+boxMessage.getFORTYHR()+boxMessage.getFORTYOT()+boxMessage.getFORTYTK());
|
|
|
+ boxMessage.setTEU(boxMessage.getTWENTYFR() +boxMessage.getTWENTYGP() + boxMessage.getTWENTYOT()
|
|
|
+ +boxMessage.getTWENTYRF()+boxMessage.getTWENTYTK() +boxMessage.getFORTYFR()*2+boxMessage.getFORTYGP()*2
|
|
|
+ +boxMessage.getFORTYHC()*2+boxMessage.getFORTYHR()*2+boxMessage.getFORTYOT()*2+boxMessage.getFORTYTK()*2);
|
|
|
+ boxMessageList.add(boxMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return boxMessageList;
|
|
|
+ }
|
|
|
}
|