diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java
index eda5a0231..0588eb70d 100644
--- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java
+++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java
@@ -248,6 +248,9 @@ public class BasicdataFactoryCategoryImporter implements ExcelImporter<Basicdata
 			}
 
 
+		}catch (CustomerException e){
+			log.error("保存失败!", e);
+			throw new CustomerException(405, e.getMessage());
 		}catch (Exception e){
 			log.error("保存失败!", e);
 			throw new CustomerException(405, "保存失败!");
@@ -284,7 +287,7 @@ public class BasicdataFactoryCategoryImporter implements ExcelImporter<Basicdata
 	 */
 	private String buildEqualString(BasicdataFactoryCategoryEntity allBasicdataFactoryCategoryEntity) {
 		StringBuilder stringBuffer = new StringBuilder();
-		stringBuffer.append(allBasicdataFactoryCategoryEntity.getBrand()).append(allBasicdataFactoryCategoryEntity.getCategory());
+		stringBuffer.append(allBasicdataFactoryCategoryEntity.getBrand());
 		// 增加结算类型 收入或者成本
 		stringBuffer.append(allBasicdataFactoryCategoryEntity.getType());
 
@@ -322,7 +325,7 @@ public class BasicdataFactoryCategoryImporter implements ExcelImporter<Basicdata
 	 */
 	private String buildEqualString2(BasicdataFactoryCategoryExcel datum) {
 		StringBuilder stringBuffer = new StringBuilder();
-		stringBuffer.append(datum.getBrand()).append(datum.getCategory());
+		stringBuffer.append(datum.getBrand());
 		// 增加结算类型 收入或者成本
 		stringBuffer.append(datum.getType());
 		if (ObjectUtil.isNotEmpty(datum.getFirsts())) {
diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportTimeController.java b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportTimeController.java
index 28b672479..0766bc3cf 100644
--- a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportTimeController.java
+++ b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportTimeController.java
@@ -52,23 +52,6 @@ public class ReportTimeController extends BladeController {
 	@ApiOperation(value = "开单时效明细报表", notes = "开单时效明细报表")
 	public R openTimeDetailPage(@RequestBody ReportTimeDTO reportTimeDTO) {
 		String method = "###########openTimeDetailPage: ";
-		String brand = reportTimeDTO.getBrand();
-		String businessLine = reportTimeDTO.getBusinessLine();
-		Long warehouseId = reportTimeDTO.getWarehouseId();
-		if(StringUtil.isBlank(brand)){
-			log.warn(method+"品牌不能为空 {}",brand);
-			return R.fail(405,"品牌不能为空");
-		}
-
-		if(StringUtil.isBlank(businessLine)){
-			log.warn(method+"事业线不能为空 {}",businessLine);
-			return R.fail(405,"事业线不能为空");
-		}
-
-		if(Objects.isNull(warehouseId)){
-			log.warn(method+"仓库id不能为空 {}",warehouseId);
-			return R.fail(405,"仓库id不能为空");
-		}
 		try{
 			return reportTimeService.openTimeDetailPage(reportTimeDTO);
 		}catch (Exception e){
@@ -82,23 +65,6 @@ public class ReportTimeController extends BladeController {
 	@ApiOperation(value = "开单时效明细报表导出", notes = "开单时效明细报表导出")
 	public void openTimeDetailExport(@RequestBody ReportTimeDTO reportTimeDTO, HttpServletResponse response) {
 		String method = "###########openTimeDetailExport: ";
-		String brand = reportTimeDTO.getBrand();
-		String businessLine = reportTimeDTO.getBusinessLine();
-		Long warehouseId = reportTimeDTO.getWarehouseId();
-		if(StringUtil.isBlank(brand)){
-			log.warn(method+"品牌不能为空 {}",brand);
-			throw new CustomerException(405,"品牌不能为空");
-		}
-
-		if(StringUtil.isBlank(businessLine)){
-			log.warn(method+"事业线不能为空 {}",businessLine);
-			throw new CustomerException(405,"事业线不能为空");
-		}
-
-		if(Objects.isNull(warehouseId)){
-			log.warn(method+"仓库id不能为空 {}",warehouseId);
-			throw new CustomerException(405,"仓库id不能为空");
-		}
 		reportTimeService.openTimeDetailExport(reportTimeDTO,response);
 	}
 
diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml
index 3cd5fae03..9a7ffd939 100644
--- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml
+++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml
@@ -711,9 +711,11 @@
         ldsa.brand brand,
         sum(ldsa.incoming_num) incomingNum,
         IFNULL(sum(ltcls.num),0) outNum,
+        sum( ldsa.incoming_num ) - IFNULL(sum(ltcls.num),0) noOutNum,
         sum(if(ltcll.start_date &lt;= DATE_ADD( ldsa.create_time, INTERVAL #{param.hoursTime} HOUR ),ltcls.num,0)) outOnTimeNum,
         IFNULL(round(sum(if(ltcll.start_date &lt;= DATE_ADD( ldsa.create_time, INTERVAL #{param.hoursTime} HOUR ),ltcls.num,0))/sum(ldsa.incoming_num)*100,2),'0.00') outOnTimeRate,
-        round(sum(TIMESTAMPDIFF(SECOND, ldsa.create_time, ltcll.start_date)*ltcls.num)/sum(ltcls.num)/3600,1) avgTime
+        round(sum(TIMESTAMPDIFF(SECOND, ldsa.create_time, ltcll.start_date)*ltcls.num)/sum(ltcls.num)/3600,1) avgTime,
+        #{param.hoursTime} hoursTime
         from logpm_distribution_stock_article ldsa
         left join logpm_warehouse_warehouse waw on waw.id = ldsa.warehouse_id
         left join logpm_warehouse_waybill lww on lww.waybill_no = ldsa.order_code
@@ -775,9 +777,11 @@
         ldsa.brand brand,
         sum(ldsa.incoming_num) incomingNum,
         IFNULL(sum(ltcls.num),0) outNum,
+        sum( ldsa.incoming_num ) - IFNULL(sum(ltcls.num),0) noOutNum,
         sum(if(ltcll.start_date &lt;= DATE_ADD( ldsa.create_time, INTERVAL #{param.hoursTime} HOUR ),ltcls.num,0)) outOnTimeNum,
         IFNULL(concat(round(sum(if(ltcll.start_date &lt;= DATE_ADD( ldsa.create_time, INTERVAL #{param.hoursTime} HOUR ),ltcls.num,0))/sum(ldsa.incoming_num)*100,2),'%'),'0.00%') outOnTimeRate,
-        round(sum(TIMESTAMPDIFF(SECOND, ldsa.create_time, ltcll.start_date)*ltcls.num)/sum(ltcls.num)/3600,1) avgTime
+        round(sum(TIMESTAMPDIFF(SECOND, ldsa.create_time, ltcll.start_date)*ltcls.num)/sum(ltcls.num)/3600,1) avgTime,
+        #{param.hoursTime} hoursTime
         from logpm_distribution_stock_article ldsa
         left join logpm_warehouse_warehouse waw on waw.id = ldsa.warehouse_id
         left join logpm_warehouse_waybill lww on lww.waybill_no = ldsa.order_code
@@ -1618,6 +1622,7 @@
                lta.store_name storeName,
                lta.warehouse_id warehouseId,
                lta.warehouse_name warehouseName,
+               min(ltad.incoming_time) incomingTime,
                GROUP_CONCAT(DISTINCT ltad.incoming_warehouse_name) incomingWarehouseName,
                lta.site_name siteName,
                lta.brand brand,
@@ -1656,9 +1661,15 @@
         left join logpm_warehouse_waybill lww on lww.waybill_no = lta.waybill_no
         left join logpm_trunkline_advance_detail ltad on ltad.advance_id = lta.id
         where lta.create_time > '2024-10-22 00:00:00'
-        and waw.business_line = #{param.businessLine}
-        and lta.brand = #{param.brand}
-        and lta.warehouse_id = #{param.warehouseId}
+        <if test="param.businessLine != null and param.businessLine !='' ">
+            and waw.business_line = #{param.businessLine}
+        </if>
+        <if test="param.brand != null and param.brand !='' ">
+            and lta.brand = #{param.brand}
+        </if>
+        <if test="param.warehouseId != null ">
+            and lta.warehouse_id = #{param.warehouseId}
+        </if>
         <if test="param.businessLineList != null and param.businessLineList.size() > 0">
             and waw.business_line in
             <foreach collection="param.businessLineList" item="item" open="(" separator="," close=")">
@@ -1788,6 +1799,7 @@
         lta.store_name storeName,
         lta.warehouse_id warehouseId,
         lta.warehouse_name warehouseName,
+        min(ltad.incoming_time) incomingTime,
         GROUP_CONCAT(DISTINCT ltad.incoming_warehouse_name) incomingWarehouseName,
         lta.site_name siteName,
         lta.brand brand,
@@ -1832,9 +1844,15 @@
         left join logpm_warehouse_waybill lww on lww.waybill_no = lta.waybill_no
         left join logpm_trunkline_advance_detail ltad on ltad.advance_id = lta.id
         where lta.create_time > '2024-10-22 00:00:00'
-        and waw.business_line = #{param.businessLine}
-        and lta.brand = #{param.brand}
-        and lta.warehouse_id = #{param.warehouseId}
+        <if test="param.businessLine != null and param.businessLine !='' ">
+            and waw.business_line = #{param.businessLine}
+        </if>
+        <if test="param.brand != null and param.brand !='' ">
+            and lta.brand = #{param.brand}
+        </if>
+        <if test="param.warehouseId != null ">
+            and lta.warehouse_id = #{param.warehouseId}
+        </if>
         <if test="param.businessLineList != null and param.businessLineList.size() > 0">
             and waw.business_line in
             <foreach collection="param.businessLineList" item="item" open="(" separator="," close=")">
diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportOpenTimeDetailVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportOpenTimeDetailVO.java
index b4715a865..664c8ddaf 100644
--- a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportOpenTimeDetailVO.java
+++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportOpenTimeDetailVO.java
@@ -30,6 +30,10 @@ public class ReportOpenTimeDetailVO implements Serializable {
 	private Long warehouseId;
 	@ExcelProperty(value = "导入仓库")
 	private String warehouseName;
+
+	@ExcelProperty(value = "入库时间")
+	@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date incomingTime;
 	@ExcelProperty(value = "入库仓库")
 	private String incomingWarehouseName;
 
diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/AdvanceDetailController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/AdvanceDetailController.java
index 7206534b1..fe13f6648 100644
--- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/AdvanceDetailController.java
+++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/AdvanceDetailController.java
@@ -8,6 +8,7 @@ import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
 import com.logpm.distribution.vo.OrderPackgeCodeDataVO;
 import com.logpm.trunkline.dto.AdvanceDetailDTO;
 import com.logpm.trunkline.dto.OrderDetailsDTO;
+import com.logpm.trunkline.dto.PackageCodeDTO;
 import com.logpm.trunkline.service.ITrunklineAdvanceDetailService;
 import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO;
 import io.swagger.annotations.Api;
@@ -17,10 +18,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springblade.common.exception.CustomerException;
 import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.*;
-import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
 @Slf4j
@@ -62,14 +61,14 @@ public class AdvanceDetailController {
 	}
 
 
-	@GetMapping("/showAdvancePackgeCode")
+	@PostMapping("/showAdvancePackgeCode")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "返回模板和模板内容")
-	public R showAdvancePackgeCode(@ApiIgnore @RequestParam Map<String,Object> params){
+	public R showAdvancePackgeCode(@RequestBody PackageCodeDTO packageCodeDTO){
 
 		OrderPackgeCodeDataVO orderPackgeCodeDataVo= null;
 		try {
-			orderPackgeCodeDataVo = advanceDetailService.showAdvancePackgeCode(params);
+			orderPackgeCodeDataVo = advanceDetailService.showAdvancePackgeCode(packageCodeDTO);
 		} catch (Exception e) {
 			return R.fail(e.getMessage());
 		}
diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/dto/PackageCodeDTO.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/dto/PackageCodeDTO.java
new file mode 100644
index 000000000..b4ac476ee
--- /dev/null
+++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/dto/PackageCodeDTO.java
@@ -0,0 +1,13 @@
+package com.logpm.trunkline.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class PackageCodeDTO implements Serializable {
+
+	private List<String> orderPackageCodes;
+
+}
diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java
index 84b0e0f72..9be8e14e1 100644
--- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java
+++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java
@@ -6,6 +6,7 @@ import com.logpm.distribution.vo.OrderPackgeCodeDataVO;
 import com.logpm.trunkline.dto.AdvanceDTO;
 import com.logpm.trunkline.dto.AdvanceDetailDTO;
 import com.logpm.trunkline.dto.OrderDetailsDTO;
+import com.logpm.trunkline.dto.PackageCodeDTO;
 import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
 import com.logpm.trunkline.vo.*;
 import com.logpm.warehouse.entity.WarehouseWaybillEntity;
@@ -41,7 +42,7 @@ public interface ITrunklineAdvanceDetailService extends BaseService<TrunklineAdv
 
 	Integer getNumByAdvanceId(Long advanceId);
 
-	OrderPackgeCodeDataVO showAdvancePackgeCode(Map<String, Object> params) throws Exception;
+	OrderPackgeCodeDataVO showAdvancePackgeCode(PackageCodeDTO packageCodeDTO) throws Exception;
 
 	List<TrunklineAdvanceDetailEntity> findListByAdvanceId(Long advanceId);
 
diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java
index b6c8b4bb7..9b807483e 100644
--- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java
+++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java
@@ -6,7 +6,6 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.logpm.basic.entity.BasicPrintTemplateEntity;
@@ -17,6 +16,7 @@ import com.logpm.distribution.vo.OrderPackgeCodeDataVO;
 import com.logpm.trunkline.dto.AdvanceDTO;
 import com.logpm.trunkline.dto.AdvanceDetailDTO;
 import com.logpm.trunkline.dto.OrderDetailsDTO;
+import com.logpm.trunkline.dto.PackageCodeDTO;
 import com.logpm.trunkline.entity.ReportPackageBasicEntity;
 import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
 import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
@@ -35,6 +35,7 @@ import org.springblade.common.constant.broadcast.FanoutConstants;
 import org.springblade.common.constant.printTemplate.PrintTemplateStatusConstant;
 import org.springblade.common.enums.BizOperationEnums;
 import org.springblade.common.enums.PackageTypeEnums;
+import org.springblade.common.exception.CustomerException;
 import org.springblade.common.model.FanoutMsg;
 import org.springblade.common.model.NodeFanoutMsg;
 import org.springblade.common.model.PackageData;
@@ -157,7 +158,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
 	}
 
 	@Override
-	public OrderPackgeCodeDataVO showAdvancePackgeCode(Map<String, Object> params) throws Exception {
+	public OrderPackgeCodeDataVO showAdvancePackgeCode(PackageCodeDTO packageCodeDTO) throws Exception {
 		log.info("----------------------------------------111111111");
 		OrderPackgeCodeDataVO orderPackgeCodeDataVO = new OrderPackgeCodeDataVO();
 		List<Map> data = new ArrayList<>();
@@ -170,15 +171,10 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
 		String html = TemplateUtil.getTemplateByUrl(template.getTemplateUrl());
 		orderPackgeCodeDataVO.setTemplateHtml(html);
 		orderPackgeCodeDataVO.setTemplateId(template.getId());
-		String orderPackageCodes = (String) params.get("orderPackageCodes");
+		List<String> orderPackageCodes = packageCodeDTO.getOrderPackageCodes();
 
-		String[] idArray = orderPackageCodes.split(",");
-		if (ObjectUtils.isNull(idArray)) {
-			throw new ServiceException("参数错误");
-
-		}
 		log.info("----------------------------------------333333333");
-		for (String orderPackageCode : idArray) {
+		orderPackageCodes.forEach(orderPackageCode -> {
 			DistributionStockArticleQRCodeVO vo = new DistributionStockArticleQRCodeVO();
 			log.info("----------------------------------------444444444444444444");
 			TrunklineAdvanceDetailEntity advanceDetailEntity = baseMapper.findEntityByOrderPackageCodelimit1(orderPackageCode);
@@ -241,9 +237,14 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
 			String fileTypeName = QRCodeUtil.createCodeToFile(vo.getOrderCode());
 			map.put("imgType", QRCodeUtil.getEmpAutograph(fileTypeName));
 			data.add(map);
-			String tempData = TemplateUtil.popTemplate(template.getTemplateName(), map, orderPackgeCodeDataVO.getTemplateHtml());
+			String tempData = null;
+			try {
+				tempData = TemplateUtil.popTemplate(template.getTemplateName(), map, orderPackgeCodeDataVO.getTemplateHtml());
+			} catch (Exception e) {
+				throw new CustomerException(405, "模板生成失败");
+			}
 			values.add(tempData);
-		}
+		});
 
 		log.info("----------------------------------------88888888888888");
 		orderPackgeCodeDataVO.setDataList(data);
diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
index 35d521c25..35bb24ade 100644
--- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
+++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
@@ -1516,6 +1516,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
 			String content = "包件在 " + warehouseEntity.getName() + "卸车确认";
 			packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), node.getCode(), content);
 
+			//同步一次系统无编码数据
+			syncNoSystemData(loadId, warehouseId, warehouseEntity.getName());
+
 		} catch (Exception e) {
 			log.warn("###############unloadPackage: 存入异常列表记录失败");
 		}
@@ -11173,6 +11176,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
 		List<DistributionStockArticleEntity> updateStockArticleList = new ArrayList<>();
 
 		groupedByLoadId.keySet().forEach(loadId -> {
+			TrunklineCarsLoadLineEntity loadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
+			if (Objects.isNull(loadLineEntity)) {
+				log.warn("##################removeCarsLoadScan: 配载计划不存在 loadId={}", loadId);
+				throw new CustomerException(405,"配载计划不存在");
+			}
+
+			String nodeStatus = loadLineEntity.getNodeStatus();
+			if("20".equals(nodeStatus)){
+				log.warn("##################removeCarsLoadScan: 当前节点已发车 loadId={} warehouseId={}", loadId,warehouseId);
+				throw new CustomerException(405,"当前节点已发车");
+			}
+			if("0".equals(nodeStatus)){
+				log.warn("##################removeCarsLoadScan: 当前节点未到达 loadId={} warehouseId={}", loadId,warehouseId);
+				throw new CustomerException(405,"当前节点未到达");
+			}
+
 			List<TrunklineCarsLoadScanEntity> loadScanEntityList = groupedByLoadId.get(loadId);
 			if(CollUtil.isNotEmpty(loadScanEntityList)){
 				//把loadScanEntityList通过fromNodeId进行分组