Browse Source

feat(port): 添加港口运输周期详情查询功能

- 在 IPortTransitCycleService 中新增 getDetail 方法接口
- 在 PortTransitCycleController 中添加 /getDetail 接口
- 在 PortTransitCycleMapper 中新增 getMethodNoByDesc 和 getDetail 查询方法
- 在 PortTransitCycleMapper.xml 中实现对应的 SQL 查询语句
- 在 PortTransitCycleServiceImpl 中实现 getDetail 方法
master
qiankanghui 2 months ago
parent
commit
96ac729439
  1. 7
      src/main/java/com/xujie/modules/port/controller/PortTransitCycleController.java
  2. 6
      src/main/java/com/xujie/modules/port/dao/PortTransitCycleMapper.java
  3. 3
      src/main/java/com/xujie/modules/port/service/Iface/IPortTransitCycleService.java
  4. 17
      src/main/java/com/xujie/modules/port/service/Impl/PortTransitCycleServiceImpl.java
  5. 21
      src/main/resources/mapper/port/PortTransitCycleMapper.xml

7
src/main/java/com/xujie/modules/port/controller/PortTransitCycleController.java

@ -21,6 +21,7 @@ import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -55,6 +56,12 @@ public class PortTransitCycleController {
baseService.saveModel(model);
return R.ok();
}
@PostMapping("/getDetail")
public R getDetail(String departure, String destination){
List<Map<String, Object>> list =
baseService.getDetail(departure, destination);
return R.ok().put("data", list);
}
/**
* 分组统计查询按始发港和目的港汇总不同运输方式的周期
*/

6
src/main/java/com/xujie/modules/port/dao/PortTransitCycleMapper.java

@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -33,4 +34,9 @@ public interface PortTransitCycleMapper extends BaseMapper<PortTransitCycle> {
PortTransitCycle selectOneByUnique(@Param("departure") String departure,
@Param("destination") String destination,
@Param("shipMethod") String shipMethod);
String getMethodNoByDesc(@Param("methodDesc") String methodDesc);
List<Map<String, Object>> getDetail(@Param("departure") String departure,
@Param("destination") String destination);
}

3
src/main/java/com/xujie/modules/port/service/Iface/IPortTransitCycleService.java

@ -9,6 +9,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -38,4 +39,6 @@ public interface IPortTransitCycleService extends IService<PortTransitCycle> {
* 批量保存上传的数据
*/
void batchSave(MultipartFile file);
List<Map<String, Object>> getDetail(String departure, String destination);
}

17
src/main/java/com/xujie/modules/port/service/Impl/PortTransitCycleServiceImpl.java

@ -17,10 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -45,15 +42,15 @@ public class PortTransitCycleServiceImpl extends ServiceImpl<PortTransitCycleMap
Date now = new Date();
// 只处理前端有值
// 陆运
if(model.getLuyun() != null){
saveOrUpdateOne(model, "陆运", model.getLuyun(), now);
}
// 海运
if(model.getHaiyun() != null){
saveOrUpdateOne(model, "海运", model.getHaiyun(), now);
}
// 空运
if(model.getKongyun() != null){
saveOrUpdateOne(model, "空运", model.getKongyun(), now);
}
@ -90,6 +87,11 @@ public class PortTransitCycleServiceImpl extends ServiceImpl<PortTransitCycleMap
}
}
@Override
public List<Map<String, Object>> getDetail(String departure, String destination) {
return baseMapper.getDetail(departure, destination);
}
@Override
public List<PortTransitCycleVo> calculateArrivalTime(PortTransitCycleVo data) {
List<PortTransitCycleVo> list = baseMapper.getListByModel(data);
@ -194,4 +196,5 @@ public class PortTransitCycleServiceImpl extends ServiceImpl<PortTransitCycleMap
}
}
}

21
src/main/resources/mapper/port/PortTransitCycleMapper.xml

@ -99,4 +99,25 @@
AND destination = #{destination}
AND ship_method = #{shipMethod}
</select>
<select id="getMethodNoByDesc" resultType="string">
SELECT method_no
FROM ship_method
WHERE method_desc = #{methodDesc}
AND active = 'Y'
</select>
<select id="getDetail" resultType="map">
SELECT
sm.method_desc AS shipMethod,
sm.method_no AS methodNo,
ptc.transit_days AS transitDays
FROM ship_method sm
LEFT JOIN port_transit_cycle ptc
ON sm.method_desc = ptc.ship_method
AND ptc.departure = #{departure}
AND ptc.destination = #{destination}
WHERE sm.active = 'Y'
</select>
</mapper>
Loading…
Cancel
Save