Browse Source

凯和箱分布添加空重好坏 导入场站动态修改动态日期

lazhaoqian 3 years ago
parent
commit
b18597b8dd

+ 5 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/shipping/controller/TCntrnoController.java

@@ -13,6 +13,7 @@ import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.shipping.excel.AirForceStationExcel;
 import com.ruoyi.shipping.excel.BoxDistributionStatistics;
 import com.ruoyi.shipping.excel.TCntrnoExcel;
+import com.ruoyi.shipping.service.ITCntrService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -39,6 +40,8 @@ public class TCntrnoController extends BaseController
 {
     @Autowired
     private ITCntrnoService tCntrnoService;
+    @Autowired
+    private ITCntrService itCntrService;
 
     /**
      * 查询集装箱号列表
@@ -159,8 +162,9 @@ public class TCntrnoController extends BaseController
     @GetMapping("/getTCntrnoMessage")
     public TableDataInfo getTCntrnoMessage(TCntrno tCntrno)
     {
+        List<String> stringList = itCntrService.selectTCntrFNo();
         startPage();
-        List<Map<String, Object>> list = tCntrnoService.getTCntrnoMessage(tCntrno);
+        List<Map<String, Object>> list = tCntrnoService.getTCntrnoMessage(tCntrno,stringList);
         return getDataTable(list);
     }
     /**

+ 1 - 1
ruoyi-shipping/src/main/java/com/ruoyi/shipping/domain/TCntrno.java

@@ -95,7 +95,7 @@ public class TCntrno extends BaseEntity
     private String fRent;
 
     /** 最新时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     //@Excel(name = "最新时间", width = 30, dateFormat = "yyyy-MM-dd")
     private Date fUpdatetime;
     /** 造箱时间 */

+ 2 - 0
ruoyi-shipping/src/main/java/com/ruoyi/shipping/mapper/TCntrnoMapper.java

@@ -105,6 +105,8 @@ public interface TCntrnoMapper
      * @return
      */
     public List<Map<String, Object>> getTCntrnoMessage(@Param("sql") String sql,
+                                                       @Param("stand") String stand,
+                                                       @Param("bareWeight") String bareWeight,
                                                        @Param("tCntrno") TCntrno tCntrno);
 
     /**

+ 5 - 0
ruoyi-shipping/src/main/java/com/ruoyi/shipping/service/ITCntrService.java

@@ -80,4 +80,9 @@ public interface ITCntrService
      * @return
      */
     public String selectTcnrFName(TCntr tCntr);
+    /**
+     * 获取集装箱的编号
+     * @return
+     */
+    public  List<String> selectTCntrFNo();
 }

+ 1 - 1
ruoyi-shipping/src/main/java/com/ruoyi/shipping/service/ITCntrnoService.java

@@ -97,7 +97,7 @@ public interface ITCntrnoService
      * @param tCntrno
      * @return
      */
-    public List<Map<String, Object>> getTCntrnoMessage(TCntrno tCntrno);
+    public List<Map<String, Object>> getTCntrnoMessage(TCntrno tCntrno,List<String> list );
     /**
      * 获取集装箱分布信息
      * @param tCntrno

+ 5 - 0
ruoyi-shipping/src/main/java/com/ruoyi/shipping/service/impl/TCntrServiceImpl.java

@@ -124,4 +124,9 @@ public class TCntrServiceImpl implements ITCntrService
         return UserConstants.UNIQUE;
 
     }
+
+    @Override
+    public List<String> selectTCntrFNo() {
+        return tCntrMapper.selectTCntrFNo();
+    }
 }

+ 151 - 54
ruoyi-shipping/src/main/java/com/ruoyi/shipping/service/impl/TCntrnoServiceImpl.java

@@ -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;
+    }
 }

+ 1 - 1
ruoyi-shipping/src/main/resources/mapper/shipping/TCntrMapper.xml

@@ -172,7 +172,7 @@
         FROM
 	    t_cntr
 	    where f_status = 'T'
-	    ORDER BY  CONVERT(f_name USING gbk) asc
+	    ORDER BY  CONVERT(f_no USING gbk) asc
     </select>
     <select id="selectRcntrFId" parameterType="TCntr" resultType="long">
         SELECT

+ 24 - 13
ruoyi-shipping/src/main/resources/mapper/shipping/TCntrnoMapper.xml

@@ -126,7 +126,8 @@
             <if test="tc.fSource != null  and tc.fSource != ''">and tc.f_source = #{tc.fSource}</if>
             <if test="tc.fRent != null  and tc.fRent != ''">and tc.f_rent = #{tc.fRent}</if>
             <if test="tc.fUpdatetime != null ">and tc.f_updatetime = #{tc.fUpdatetime}</if>
-            <if test="tc.fUpdateaddress != null  and tc.fUpdateaddress != ''">and tc.f_updateaddress = #{tc.fUpdateaddress}</if>
+            <if test='tc.fUpdateaddress != null  and tc.fUpdateaddress != "" and tc.fUpdateaddress != "0"'>and tc.f_updateaddress = #{tc.fUpdateaddress}</if>
+            <if test='tc.fUpdateaddress != null  and tc.fUpdateaddress != "" and tc.fUpdateaddress == "0"'>and tc.f_updateaddress = ''</if>
             <if test="tc.fUpdateef != null  and tc.fUpdateef != ''">and tc.f_updateEF = #{tc.fUpdateef}</if>
             <if test="tc.fCntrstatus != null  and tc.fCntrstatus != ''">and tc.f_cntrstatus = #{tc.fCntrstatus}</if>
             <if test="tc.fStatus != null  and tc.fStatus != ''">and tc.f_status = #{tc.fStatus}</if>
@@ -395,10 +396,8 @@
     <select id="getTCntrnoMessage" parameterType="string" resultType="map">
         SELECT
         container.*,
-        box.`空`,
-        box.`重`,
-        car.`好`,
-        car.`坏`
+        box.*,
+        car.*
         FROM
         (
         SELECT
@@ -434,14 +433,16 @@
         ) container
         LEFT JOIN (
         SELECT
-        a.f_updateaddress,
-        MAX( CASE WHEN a.dict_label = '空' THEN a.efCount ELSE 0 END ) AS 空,
-        MAX( CASE WHEN a.dict_label = '重' THEN a.efCount ELSE 0 END ) AS 重
+        a.f_updateaddress
+        <if test=" stand != null and stand != ''">
+            ,${stand}
+        </if>
         FROM
         (
         SELECT
         tc.f_updateaddress f_updateaddress,
         tc.f_updateEF f_updateEF,
+        tc.typeName typeName,
         tc.efCount efCount,
         sdda.dict_label dict_label
         FROM
@@ -449,15 +450,18 @@
         SELECT
         ta.f_name f_updateaddress,
         tct.f_updateEF,
+        tc.f_no typeName,
         COUNT( tct.f_updateaddress ) efCount
         FROM
         t_cntrno tct
         LEFT JOIN t_address ta ON tct.f_updateaddress = ta.f_id
+        LEFT JOIN t_cntr tc ON tct.f_typeid = tc.f_id
         WHERE
         tct.f_status = 'T'
         GROUP BY
         tct.f_updateaddress,
-        tct.f_updateEF
+        tct.f_updateEF,
+        tct.f_typeid
         ) tc
         LEFT JOIN sys_dict_data sdda ON sdda.dict_value = tc.f_updateEF
         AND sdda.dict_type = 'f_updateEF'
@@ -467,30 +471,35 @@
         ) box ON container.地点 = box.f_updateaddress
         LEFT JOIN (
         SELECT
-        b.f_updateaddress,
-        MAX( CASE WHEN b.dict_label = '好' THEN b.statusCount ELSE 0 END ) AS 好,
-        MAX( CASE WHEN b.dict_label = '坏' THEN b.statusCount ELSE 0 END ) AS 坏
+        b.f_updateaddress
+        <if test=" bareWeight != null and bareWeight != ''">
+            ,${bareWeight}
+        </if>
         FROM
         (
         SELECT
         tc.f_updateaddress f_updateaddress,
         tc.f_cntrstatus f_cntrstatus,
         tc.statusCount statusCount,
+        tc.typeName typeName,
         sdda.dict_label dict_label
         FROM
         (
         SELECT
         ta.f_name f_updateaddress,
         tct.f_cntrstatus,
+        tc.f_no typeName,
         COUNT( tct.f_updateaddress ) statusCount
         FROM
         t_cntrno tct
         LEFT JOIN t_address ta ON tct.f_updateaddress = ta.f_id
+        LEFT JOIN t_cntr tc ON tct.f_typeid = tc.f_id
         WHERE
         tct.f_status = 'T'
         GROUP BY
         tct.f_updateaddress,
-        tct.f_cntrstatus
+        tct.f_cntrstatus,
+        tct.f_typeid
         ) tc
         LEFT JOIN sys_dict_data sdda ON sdda.dict_value = tc.f_cntrstatus
         AND sdda.dict_type = 'f_cntrstatus'
@@ -606,6 +615,8 @@
             <if test="fUpdateaddress != null  and fUpdateaddress != ''">and tc.f_updateaddress = #{fUpdateaddress}</if>
             <if test="fOpctnstatus != null  and fOpctnstatus != ''">and tc.f_opctnstatus = #{fOpctnstatus}</if>
             <if test="remark != null">and tc.remark = #{remark}</if>
+            <if test="fUpdateef != null and fUpdateef != ''">and tc.f_updateEF = #{fUpdateef}</if>
+            <if test="fCntrstatus != null and fCntrstatus != ''">and tc.f_cntrstatus = #{fCntrstatus}</if>
         </where>
         GROUP BY
         LEFT ( tr.f_no, 2 ),

+ 0 - 1
ruoyi-shipping/src/main/resources/mapper/shipping/TVoyageMapper.xml

@@ -84,7 +84,6 @@
         LEFT JOIN sys_user su ON tv.f_manageid = su.user_id
         LEFT JOIN t_address tes ON tv.f_laneid = tes.f_id
         <where>
-            tv.f_status = 'T'
             <if test="fPid != null ">and tv.f_pid = #{fPid}</if>
             <if test="fNo != null  and fNo != ''">and tv.f_no = #{fNo}</if>
             <if test="fPortofloadid != null ">and tv.f_portofloadid = #{fPortofloadid}</if>