no message
parent
88176e1522
commit
b0ec269b7d
|
|
@ -324,4 +324,19 @@ public class AsnController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "入库-手工关单")
|
||||||
|
@Operation(summary = "入库-手工关单")
|
||||||
|
@RequiresPermissions("receive:data_asn:closeAsn")
|
||||||
|
@GetMapping(value = "/closeAsn")
|
||||||
|
public Result<String> closeAsn(@RequestParam(name = "ids", required = true) String ids) {
|
||||||
|
try {
|
||||||
|
List<String> idsList = Arrays.asList(ids.split(","));
|
||||||
|
List<Long> asnIds = idsList.stream().map(Long::parseLong).toList();
|
||||||
|
asnService.closeAsn(asnIds);
|
||||||
|
return Result.OK("操作成功");
|
||||||
|
} catch (Exception e) {
|
||||||
|
return Result.error("操作异常:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.cpte.modules.receive.entity.Asn;
|
||||||
import org.cpte.modules.receive.entity.AsnDetail;
|
import org.cpte.modules.receive.entity.AsnDetail;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.cpte.modules.shipping.entity.PickDetail;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 入库明细
|
* @Description: 入库明细
|
||||||
|
|
@ -22,7 +23,7 @@ public interface AsnDetailMapper extends BaseMapper<AsnDetail> {
|
||||||
* @param mainId 主表id
|
* @param mainId 主表id
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public boolean deleteByMainId(@Param("mainId") Long mainId);
|
boolean deleteByMainId(@Param("mainId") Long mainId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过主表id查询子表数据
|
* 通过主表id查询子表数据
|
||||||
|
|
@ -30,7 +31,15 @@ public interface AsnDetailMapper extends BaseMapper<AsnDetail> {
|
||||||
* @param mainId 主表id
|
* @param mainId 主表id
|
||||||
* @return List<AsnDetail>
|
* @return List<AsnDetail>
|
||||||
*/
|
*/
|
||||||
public List<AsnDetail> selectByMainId(@Param("mainId") Long mainId);
|
List<AsnDetail> selectByMainId(@Param("mainId") Long mainId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过入库单id集合查询入库明细
|
||||||
|
*
|
||||||
|
* @param asnIds 入库单id集合
|
||||||
|
* @return List<AsnDetail>
|
||||||
|
*/
|
||||||
|
List<AsnDetail> queryByAsnIds(@Param("asnIds") List<Long> asnIds);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -25,4 +25,15 @@
|
||||||
AND status = #{status}
|
AND status = #{status}
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryByAsnIds" resultType="org.cpte.modules.receive.entity.AsnDetail">
|
||||||
|
SELECT *
|
||||||
|
FROM data_asn_detail
|
||||||
|
WHERE
|
||||||
|
asn_id IN
|
||||||
|
<foreach item="asnId" index="index" collection="asnIds" open="(" separator="," close=")">
|
||||||
|
#{asnId}
|
||||||
|
</foreach>
|
||||||
|
ORDER BY line_no
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import org.cpte.modules.receive.entity.AsnDetail;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.cpte.modules.receive.entity.ReceiveRecord;
|
import org.cpte.modules.receive.entity.ReceiveRecord;
|
||||||
import org.cpte.modules.saiWms.request.InboundRequest;
|
import org.cpte.modules.saiWms.request.InboundRequest;
|
||||||
|
import org.cpte.modules.shipping.entity.Pick;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -28,7 +29,15 @@ public interface IAsnDetailService extends IService<AsnDetail> {
|
||||||
* @param mainId 主表id
|
* @param mainId 主表id
|
||||||
* @return List<AsnDetail>
|
* @return List<AsnDetail>
|
||||||
*/
|
*/
|
||||||
public List<AsnDetail> selectByMainId(Long mainId);
|
List<AsnDetail> selectByMainId(Long mainId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据入库单ID查询入库单Map
|
||||||
|
*
|
||||||
|
* @param asnIds 入库单ID集合
|
||||||
|
* @return Map<Long, Asn>
|
||||||
|
*/
|
||||||
|
Map<Long, Asn> queryByAsnIdsToMap(List<Long> asnIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存主表信息
|
* 保存主表信息
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,10 @@ public interface IAsnService extends IService<Asn> {
|
||||||
*/
|
*/
|
||||||
void cancelAsn(Asn asn);
|
void cancelAsn(Asn asn);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关闭操作
|
||||||
|
*
|
||||||
|
* @param asnIds 入库单ID
|
||||||
|
*/
|
||||||
|
void closeAsn(List<Long> asnIds);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package org.cpte.modules.receive.service.impl;
|
package org.cpte.modules.receive.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.cpte.modules.agvTask.service.IAgvTaskService;
|
import org.cpte.modules.agvTask.service.IAgvTaskService;
|
||||||
import org.cpte.modules.base.entity.Item;
|
import org.cpte.modules.base.entity.Item;
|
||||||
|
|
@ -19,14 +20,12 @@ import org.cpte.modules.receive.mapper.AsnMapper;
|
||||||
import org.cpte.modules.receive.service.IAsnDetailService;
|
import org.cpte.modules.receive.service.IAsnDetailService;
|
||||||
import org.cpte.modules.saiWms.request.InboundRequest;
|
import org.cpte.modules.saiWms.request.InboundRequest;
|
||||||
import org.cpte.modules.serialNumber.AsnSerialNumberRule;
|
import org.cpte.modules.serialNumber.AsnSerialNumberRule;
|
||||||
|
import org.cpte.modules.shipping.entity.Pick;
|
||||||
import org.jeecg.common.system.vo.LoginUser;
|
import org.jeecg.common.system.vo.LoginUser;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
@ -62,6 +61,19 @@ public class AsnDetailServiceImpl extends ServiceImpl<AsnDetailMapper, AsnDetail
|
||||||
return this.baseMapper.selectByMainId(mainId);
|
return this.baseMapper.selectByMainId(mainId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Long, Asn> queryByAsnIdsToMap(List<Long> asnIds) {
|
||||||
|
if (CollectionUtils.isEmpty(asnIds)) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
Map<Long, Asn> asnMap = new HashMap<>();
|
||||||
|
List<Asn> asnList = asnMapper.selectByIds(asnIds);
|
||||||
|
for (Asn asn : asnList) {
|
||||||
|
asnMap.put(asn.getId(), asn);
|
||||||
|
}
|
||||||
|
return asnMap;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void processorSaveMain(Asn asn, List<AsnDetail> asnDetailList) {
|
public void processorSaveMain(Asn asn, List<AsnDetail> asnDetailList) {
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import org.cpte.modules.base.entity.Stock;
|
||||||
import org.cpte.modules.base.mapper.StockMapper;
|
import org.cpte.modules.base.mapper.StockMapper;
|
||||||
import org.cpte.modules.constant.enums.AsnStatusEnum;
|
import org.cpte.modules.constant.enums.AsnStatusEnum;
|
||||||
import org.cpte.modules.constant.enums.CommonStatusEnum;
|
import org.cpte.modules.constant.enums.CommonStatusEnum;
|
||||||
|
import org.cpte.modules.constant.enums.PickStatusEnum;
|
||||||
import org.cpte.modules.receive.entity.Asn;
|
import org.cpte.modules.receive.entity.Asn;
|
||||||
import org.cpte.modules.receive.entity.AsnDetail;
|
import org.cpte.modules.receive.entity.AsnDetail;
|
||||||
import org.cpte.modules.receive.mapper.AsnDetailMapper;
|
import org.cpte.modules.receive.mapper.AsnDetailMapper;
|
||||||
|
|
@ -18,6 +19,8 @@ import org.cpte.modules.receive.service.IAsnDetailService;
|
||||||
import org.cpte.modules.receive.service.IAsnService;
|
import org.cpte.modules.receive.service.IAsnService;
|
||||||
import org.cpte.modules.receive.service.processor.ReceiveProcessor;
|
import org.cpte.modules.receive.service.processor.ReceiveProcessor;
|
||||||
import org.cpte.modules.saiWms.request.InboundRequest;
|
import org.cpte.modules.saiWms.request.InboundRequest;
|
||||||
|
import org.cpte.modules.shipping.entity.Pick;
|
||||||
|
import org.cpte.modules.shipping.entity.PickDetail;
|
||||||
import org.cpte.modules.utils.RedisDistributedLockUtil;
|
import org.cpte.modules.utils.RedisDistributedLockUtil;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
@ -28,6 +31,7 @@ import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 入库单
|
* @Description: 入库单
|
||||||
|
|
@ -168,4 +172,35 @@ public class AsnServiceImpl extends ServiceImpl<AsnMapper, Asn> implements IAsnS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void closeAsn(List<Long> asnIds) {
|
||||||
|
if (CollectionUtils.isEmpty(asnIds)) {
|
||||||
|
throw new RuntimeException("请选择需要关闭的入库单");
|
||||||
|
}
|
||||||
|
Map<Long, Asn> asnMap = asnDetailService.queryByAsnIdsToMap(asnIds);
|
||||||
|
List<AsnDetail> asnDetails = asnDetailMapper.queryByAsnIds(asnIds);
|
||||||
|
//根据出库单ID分组
|
||||||
|
Map<Long, List<AsnDetail>> asnDetailMapGroup = asnDetails.stream().collect(Collectors.groupingBy(AsnDetail::getAsnId));
|
||||||
|
//遍历集合
|
||||||
|
List<Asn> asnToUpdate = new ArrayList<>();
|
||||||
|
List<AsnDetail> asnDetailToUpdate = new ArrayList<>();
|
||||||
|
for (Map.Entry<Long, List<AsnDetail>> entry : asnDetailMapGroup.entrySet()) {
|
||||||
|
Asn asn = asnMap.get(entry.getKey());
|
||||||
|
List<AsnDetail> asnDetailList = entry.getValue();
|
||||||
|
for (AsnDetail asnDetail : asnDetailList) {
|
||||||
|
asnDetail.setStatus(AsnStatusEnum.CLOSED.getValue());
|
||||||
|
asnDetailToUpdate.add(asnDetail);
|
||||||
|
}
|
||||||
|
asn.setStatus(AsnStatusEnum.CLOSED.getValue());
|
||||||
|
asnToUpdate.add(asn);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isNotEmpty(asnDetailToUpdate)) {
|
||||||
|
asnDetailMapper.updateById(asnDetailToUpdate);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isNotEmpty(asnToUpdate)) {
|
||||||
|
this.updateBatchById(asnToUpdate);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -382,14 +382,11 @@ public class PickController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@AutoLog(value = "手工关单")
|
@AutoLog(value = "出库-手工关单")
|
||||||
@Operation(summary = "手工关单")
|
@Operation(summary = "出库-手工关单")
|
||||||
@RequiresPermissions("shipping:data_pick:closePick")
|
@RequiresPermissions("shipping:data_pick:closePick")
|
||||||
@GetMapping(value = "/closePick")
|
@GetMapping(value = "/closePick")
|
||||||
public Result<String> closePick(@RequestParam(name = "ids", required = true) String ids) {
|
public Result<String> closePick(@RequestParam(name = "ids", required = true) String ids) {
|
||||||
if (StringUtils.isBlank(ids)) {
|
|
||||||
return Result.error("请选择需要拣货的出库单");
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
List<String> idsList = Arrays.asList(ids.split(","));
|
List<String> idsList = Arrays.asList(ids.split(","));
|
||||||
List<Long> pickIds = idsList.stream().map(Long::parseLong).toList();
|
List<Long> pickIds = idsList.stream().map(Long::parseLong).toList();
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import org.cpte.modules.shipping.entity.PickDetail;
|
||||||
import org.cpte.modules.shipping.entity.Task;
|
import org.cpte.modules.shipping.entity.Task;
|
||||||
import org.cpte.modules.shipping.mapper.PickDetailMapper;
|
import org.cpte.modules.shipping.mapper.PickDetailMapper;
|
||||||
import org.cpte.modules.shipping.mapper.TaskMapper;
|
import org.cpte.modules.shipping.mapper.TaskMapper;
|
||||||
|
import org.cpte.modules.shipping.service.IPickDetailService;
|
||||||
import org.cpte.modules.shipping.vo.PickData;
|
import org.cpte.modules.shipping.vo.PickData;
|
||||||
import org.cpte.modules.utils.SwmsLoginUtil;
|
import org.cpte.modules.utils.SwmsLoginUtil;
|
||||||
import org.jeecg.modules.openapi.mapper.OpenApiMapper;
|
import org.jeecg.modules.openapi.mapper.OpenApiMapper;
|
||||||
|
|
@ -37,6 +38,9 @@ public class PickBackProcessor {
|
||||||
@Autowired
|
@Autowired
|
||||||
private PickDetailMapper pickDetailMapper;
|
private PickDetailMapper pickDetailMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IPickDetailService pickDetailService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TaskMapper taskMapper;
|
private TaskMapper taskMapper;
|
||||||
|
|
||||||
|
|
@ -106,11 +110,14 @@ public class PickBackProcessor {
|
||||||
* @param tasks 任务
|
* @param tasks 任务
|
||||||
*/
|
*/
|
||||||
public void pickBack(PickData data, List<Task> tasks) {
|
public void pickBack(PickData data, List<Task> tasks) {
|
||||||
|
if (CollectionUtils.isEmpty(tasks)) {
|
||||||
tasks = tasks.stream().filter(task -> task.getPlanQty().equals(task.getMoveQty())).toList();
|
return;
|
||||||
|
}
|
||||||
|
List<Long> pickDetailIds = tasks.stream().map(Task::getPickDetailId).toList();
|
||||||
|
Map<Long, PickDetail> pickDetailMap = pickDetailService.queryByPickDetailIdsToMap(pickDetailIds);
|
||||||
for (Task task : tasks) {
|
for (Task task : tasks) {
|
||||||
Pick pick = data.getPickMap().get(task.getPickId());
|
Pick pick = data.getPickMap().get(task.getPickId());
|
||||||
PickDetail pickDetail = data.getPickDetailMap().get(task.getPickDetailId());
|
PickDetail pickDetail = pickDetailMap.get(task.getPickDetailId());
|
||||||
Long pickId = pick.getId();
|
Long pickId = pick.getId();
|
||||||
try {
|
try {
|
||||||
List<PickDetail> pickDetails = pickDetailMapper.selectByMainId(pickId);
|
List<PickDetail> pickDetails = pickDetailMapper.selectByMainId(pickId);
|
||||||
|
|
@ -134,7 +141,7 @@ public class PickBackProcessor {
|
||||||
private void pickBackProcessor(Pick pick, PickDetail pickDetail, Task task, Integer state) {
|
private void pickBackProcessor(Pick pick, PickDetail pickDetail, Task task, Integer state) {
|
||||||
// 检查接口开关, 未开启则返回
|
// 检查接口开关, 未开启则返回
|
||||||
if (sysDictMapper.queryByDictCode(GeneralConstant.OPEN_FLAG) == null) {
|
if (sysDictMapper.queryByDictCode(GeneralConstant.OPEN_FLAG) == null) {
|
||||||
updatePickDetailResponse(pickDetail, task, GeneralConstant.SMOM_FAIL_CODE,null ,"接口未开启");
|
updatePickDetailResponse(pickDetail, task, GeneralConstant.SMOM_SUCCESS_CODE,null ,"接口未开启");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -210,7 +217,7 @@ public class PickBackProcessor {
|
||||||
*/
|
*/
|
||||||
private void updatePickDetailResponse(PickDetail pickDetail, Task task, String code, String reqMessage, String resMessage) {
|
private void updatePickDetailResponse(PickDetail pickDetail, Task task, String code, String reqMessage, String resMessage) {
|
||||||
if (GeneralConstant.SMOM_SUCCESS_CODE.equals(code)) {
|
if (GeneralConstant.SMOM_SUCCESS_CODE.equals(code)) {
|
||||||
if (pickDetail.getOrderQty().equals(pickDetail.getPickedQty())) {
|
if (pickDetail.getOrderQty().compareTo(pickDetail.getPickedQty()) == 0) {
|
||||||
pickDetail.setStatus(PickStatusEnum.CLOSED.getValue());
|
pickDetail.setStatus(PickStatusEnum.CLOSED.getValue());
|
||||||
pickDetailMapper.updateById(pickDetail);
|
pickDetailMapper.updateById(pickDetail);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,14 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.jeecg.common.util.RestUtil;
|
import org.jeecg.common.util.RestUtil;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
|
||||||
|
|
||||||
public class TesStock {
|
public class TesStock {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
@ -19,6 +27,7 @@ public class TesStock {
|
||||||
|
|
||||||
String url = "http://10.254.27.191/tes/apiv2/getPodList";
|
String url = "http://10.254.27.191/tes/apiv2/getPodList";
|
||||||
JSONObject stockInfo = RestUtil.post(url, params);
|
JSONObject stockInfo = RestUtil.post(url, params);
|
||||||
|
//JSONObject stockInfo = stockInfo();
|
||||||
JSONObject data = stockInfo.getJSONObject("data");
|
JSONObject data = stockInfo.getJSONObject("data");
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -33,4 +42,46 @@ public class TesStock {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static JSONObject stockInfo(){
|
||||||
|
// 方案2:从外部文件读取
|
||||||
|
try {
|
||||||
|
String jsonString = readFileToString("stock_data.json"); // 从资源文件读取
|
||||||
|
return JSONObject.parseObject(jsonString);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 返回默认值或抛出异常
|
||||||
|
return new JSONObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从文件路径读取内容为字符串
|
||||||
|
*
|
||||||
|
* @param filePath 文件路径
|
||||||
|
* @return 文件内容字符串
|
||||||
|
* @throws IOException 读取异常
|
||||||
|
*/
|
||||||
|
public static String readFileToString(String filePath) throws IOException {
|
||||||
|
// 如果是类路径下的资源文件
|
||||||
|
InputStream inputStream = TesStock.class.getClassLoader().getResourceAsStream(filePath);
|
||||||
|
|
||||||
|
if (inputStream != null) {
|
||||||
|
try (BufferedReader reader = new BufferedReader(
|
||||||
|
new InputStreamReader(inputStream, StandardCharsets.UTF_8))) {
|
||||||
|
StringBuilder content = new StringBuilder();
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
content.append(line).append("\n");
|
||||||
|
}
|
||||||
|
// 移除最后多余的换行符
|
||||||
|
if (content.length() > 0) {
|
||||||
|
content.deleteCharAt(content.length() - 1);
|
||||||
|
}
|
||||||
|
return content.toString();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 如果是绝对路径或相对路径文件
|
||||||
|
return new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue