Merge branch '0.8.X' of http://49.232.154.205:10100/DeXun/klp-oa into 0.8.X
This commit is contained in:
@@ -134,9 +134,12 @@ public class WmsDeliveryWaybillDetailController extends BaseController {
|
||||
WmsMaterialCoilBo bo,
|
||||
PageQuery pageQuery,
|
||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
|
||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
|
||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
|
||||
@RequestParam(required = false) Long planId) {
|
||||
List<Long> boundCoilIds;
|
||||
if (startTime != null || endTime != null) {
|
||||
if (planId != null) {
|
||||
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByPlanId(planId, startTime, endTime);
|
||||
} else if (startTime != null || endTime != null) {
|
||||
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime);
|
||||
} else {
|
||||
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
|
||||
@@ -157,9 +160,12 @@ public class WmsDeliveryWaybillDetailController extends BaseController {
|
||||
public R<java.util.Map<String, java.math.BigDecimal>> getStatistics(
|
||||
WmsMaterialCoilBo bo,
|
||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
|
||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
|
||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
|
||||
@RequestParam(required = false) Long planId) {
|
||||
List<Long> boundCoilIds;
|
||||
if (startTime != null || endTime != null) {
|
||||
if (planId != null) {
|
||||
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByPlanId(planId, startTime, endTime);
|
||||
} else if (startTime != null || endTime != null) {
|
||||
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime);
|
||||
} else {
|
||||
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
|
||||
|
||||
@@ -5,6 +5,9 @@ import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -30,6 +33,7 @@ import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import com.klp.domain.bo.WmsMaterialCoilBo;
|
||||
import com.klp.domain.bo.WmsMaterialCoilReportSummaryBo;
|
||||
import com.klp.domain.vo.dashboard.CoilTrimStatisticsVo;
|
||||
@@ -130,6 +134,70 @@ public class WmsMaterialCoilController extends BaseController {
|
||||
List<WmsMaterialCoilExportVo> list = iWmsMaterialCoilService.queryExportList(bo);
|
||||
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilExportVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 个性化导出:前端传入要导出的字段名,仅导出选中列
|
||||
* columns 参数为逗号分隔的 Java 字段名,如 "itemTypeDesc,enterCoilNo,netWeight"
|
||||
* 不传 columns 时等同于 /exportAll 导出全部字段
|
||||
*/
|
||||
@Log(title = "钢卷物料表", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/exportCustom")
|
||||
public void exportCustom(WmsMaterialCoilBo bo,
|
||||
@RequestParam(required = false) String columns,
|
||||
HttpServletResponse response) {
|
||||
List<WmsMaterialCoilAllExportVo> list = iWmsMaterialCoilService.queryExportListAll(bo);
|
||||
if (StringUtils.isNotBlank(columns)) {
|
||||
Set<String> includeFields = new HashSet<>(Arrays.asList(columns.split(",")));
|
||||
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilAllExportVo.class, includeFields, response);
|
||||
} else {
|
||||
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilAllExportVo.class, response);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可导出的列元数据(供前端列选择器使用)
|
||||
* 返回 { "fieldName": "中文列名" } 的映射,基于完整导出字段
|
||||
*/
|
||||
@GetMapping("/exportColumns")
|
||||
public R<Map<String, String>> getExportColumns() {
|
||||
Map<String, String> columns = new LinkedHashMap<>();
|
||||
columns.put("itemTypeDesc", "类型");
|
||||
columns.put("warehouseName", "逻辑库区");
|
||||
columns.put("actualWarehouseName", "实际库区");
|
||||
columns.put("enterCoilNo", "入场卷号");
|
||||
columns.put("supplierCoilNo", "厂家卷号");
|
||||
columns.put("currentCoilNo", "成品卷号");
|
||||
columns.put("createTime", "日期");
|
||||
columns.put("exportTime", "发货时间");
|
||||
columns.put("exportBy", "发货人");
|
||||
columns.put("netWeight", "重量");
|
||||
columns.put("purpose", "用途");
|
||||
columns.put("trimmingRequirement", "切边要求");
|
||||
columns.put("packagingRequirement", "包装种类");
|
||||
columns.put("qualityStatus", "产品质量");
|
||||
columns.put("packingStatus", "原料材质");
|
||||
columns.put("statusDesc", "库存状态");
|
||||
columns.put("remark", "备注");
|
||||
columns.put("itemName", "名称");
|
||||
columns.put("length", "长度");
|
||||
columns.put("specification", "规格");
|
||||
columns.put("material", "材质");
|
||||
columns.put("manufacturer", "厂家");
|
||||
columns.put("surfaceTreatmentDesc", "表面处理");
|
||||
columns.put("zincLayer", "锌层");
|
||||
columns.put("itemId", "物品ID");
|
||||
columns.put("dataTypeText", "数据类型");
|
||||
columns.put("temperGrade", "调制度");
|
||||
columns.put("coatingType", "镀层种类");
|
||||
columns.put("businessPurpose", "业务用途");
|
||||
columns.put("isRelatedToOrderText", "是否与订单相关");
|
||||
columns.put("saleName", "销售人员");
|
||||
columns.put("actualThickness", "实测厚度");
|
||||
columns.put("transferType", "调拨类型");
|
||||
columns.put("team", "班组");
|
||||
return R.ok(columns);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出钢卷物料表列表(完整字段版本)
|
||||
* 导出全部字段
|
||||
|
||||
@@ -78,6 +78,7 @@ public class WmsMaterialCoilAllExportVo {
|
||||
private BigDecimal netWeight;
|
||||
|
||||
// 班组
|
||||
@ExcelProperty(value = "班组")
|
||||
private String team;
|
||||
|
||||
/**
|
||||
|
||||
@@ -73,4 +73,9 @@ public interface IWmsDeliveryWaybillDetailService {
|
||||
* 根据负责人(principal)查询已绑定的钢卷ID列表
|
||||
*/
|
||||
List<Long> getBoundCoilIdsByPrincipal(String principal);
|
||||
|
||||
/**
|
||||
* 根据发货计划ID查询已绑定的钢卷ID列表(可结合时间段筛选)
|
||||
*/
|
||||
List<Long> getBoundCoilIdsByPlanId(Long planId, Date startTime, Date endTime);
|
||||
}
|
||||
|
||||
@@ -338,6 +338,33 @@ public class WmsDeliveryWaybillDetailServiceImpl implements IWmsDeliveryWaybillD
|
||||
return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> getBoundCoilIdsByPlanId(Long planId, Date startTime, Date endTime) {
|
||||
LambdaQueryWrapper<WmsDeliveryWaybill> waybillWrapper = Wrappers.lambdaQuery();
|
||||
waybillWrapper.eq(WmsDeliveryWaybill::getPlanId, planId);
|
||||
waybillWrapper.eq(WmsDeliveryWaybill::getDelFlag, 0);
|
||||
if (startTime != null) {
|
||||
waybillWrapper.ge(WmsDeliveryWaybill::getDeliveryTime, startTime);
|
||||
}
|
||||
if (endTime != null) {
|
||||
waybillWrapper.le(WmsDeliveryWaybill::getDeliveryTime, endTime);
|
||||
}
|
||||
List<WmsDeliveryWaybill> waybills = wmsDeliveryWaybillMapper.selectList(waybillWrapper);
|
||||
if (waybills == null || waybills.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
List<Long> waybillIds = waybills.stream().map(WmsDeliveryWaybill::getWaybillId).collect(Collectors.toList());
|
||||
|
||||
LambdaQueryWrapper<WmsDeliveryWaybillDetail> detailWrapper = Wrappers.lambdaQuery();
|
||||
detailWrapper.in(WmsDeliveryWaybillDetail::getWaybillId, waybillIds);
|
||||
detailWrapper.isNotNull(WmsDeliveryWaybillDetail::getCoilId);
|
||||
detailWrapper.eq(WmsDeliveryWaybillDetail::getDelFlag, 0);
|
||||
detailWrapper.select(WmsDeliveryWaybillDetail::getCoilId);
|
||||
List<WmsDeliveryWaybillDetail> list = baseMapper.selectList(detailWrapper);
|
||||
return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> getBoundCoilIdsByPrincipal(String principal) {
|
||||
if (principal == null || principal.trim().isEmpty()) {
|
||||
|
||||
@@ -630,6 +630,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
qw.eq(StringUtils.isNotBlank(bo.getBusinessPurpose()), "mc.business_purpose", bo.getBusinessPurpose());
|
||||
// 是否与订单相关(0=否,1=是)
|
||||
qw.eq(bo.getIsRelatedToOrder() != null, "mc.is_related_to_order", bo.getIsRelatedToOrder());
|
||||
// 加上remark的模糊匹配
|
||||
qw.like(StringUtils.isNotBlank(bo.getRemark()), "mc.remark", bo.getRemark());
|
||||
//逻辑删除
|
||||
qw.eq("mc.del_flag", 0);
|
||||
// 统一处理 warehouseId 与 warehouseIds:
|
||||
|
||||
Reference in New Issue
Block a user