Commit f93efe87 by 王志超

feat: 变更工单导出改造

parent aea887e5
......@@ -14,6 +14,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import com.netease.mail.yanxuan.change.biz.service.ChangeFlowExecService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -100,12 +101,28 @@ public class ChangeFlowExportCallback implements DesCallbackService {
@Autowired
private SupplierService supplierService;
@Autowired
private ChangeFlowExecService changeFlowExecService;
@Override
public ExcelTitle queryExcelTitle(CallbackQueryReq req) {
log.info("[op: change flow export callback queryExcelTitle] req={}", JSON.toJSONString(req));
ChangeFlowExportQuery query = JSON.parseObject(req.getParamJson(), ChangeFlowExportQuery.class);
ChangeFlowListQueryReq changeFlowListQueryReq = new ChangeFlowListQueryReq();
BeanUtils.copyProperties(query, changeFlowListQueryReq);
// 处理 changeExecUser 参数(与 query 方法保持一致)
if (StringUtils.isNotBlank(changeFlowListQueryReq.getChangeExecUser())) {
List<Long> recordIds = changeFlowExecService.queryByExecUser(changeFlowListQueryReq.getChangeExecUser());
changeFlowListQueryReq.setChangeRecordIds(recordIds);
log.info("[queryExcelTitle] recordIds: {}", recordIds);
if (CollectionUtils.isEmpty(recordIds)) {
ExcelTitle excelTitle = ExcelUtil.fetchExceltile(ChangeFlowExcelVo.class);
excelTitle.setTotal(0L);
return excelTitle;
}
}
List<ChangeRecord> list = changeRecordMapper.selectByCondition(changeFlowListQueryReq);
ExcelTitle excelTitle = ExcelUtil.fetchExceltile(ChangeFlowExcelVo.class);
excelTitle.setTotal((long) list.size());
......@@ -127,6 +144,17 @@ public class ChangeFlowExportCallback implements DesCallbackService {
private List<ChangeFlowExcelDTO> getExportList(ChangeFlowExportQuery query) {
ChangeFlowListQueryReq changeFlowListQueryReq = new ChangeFlowListQueryReq();
BeanUtils.copyProperties(query, changeFlowListQueryReq);
// 处理 changeExecUser 参数(与 query 方法保持一致)
if (StringUtils.isNotBlank(changeFlowListQueryReq.getChangeExecUser())) {
List<Long> recordIds = changeFlowExecService.queryByExecUser(changeFlowListQueryReq.getChangeExecUser());
changeFlowListQueryReq.setChangeRecordIds(recordIds);
log.info("[getExportList] recordIds: {}", recordIds);
if (CollectionUtils.isEmpty(recordIds)) {
return Lists.newArrayList();
}
}
List<ChangeRecord> changeRecords = changeRecordMapper.selectByConditionAndLimit(changeFlowListQueryReq);
log.debug("[getExportList] changeRecords:{}", JSON.toJSONString(changeRecords));
if (CollectionUtils.isEmpty(changeRecords)) {
......@@ -215,7 +243,17 @@ public class ChangeFlowExportCallback implements DesCallbackService {
Long itemId = itemVO.getItemId();
// 组装通用信息,除商品信息,行动项以外其他字段一致
ChangeFlowExcelDTO changeFlowExcelDTO = this.obtainCommon(record, changeSubjectEnum, orgMap);
changeFlowExcelDTO.setSupplier("/");
String changeSupplier = StringUtils.isBlank(record.getChangeSupplier()) ? "" : record.getChangeSupplier();
String changeSupplierName = "";
if (StringUtils.isNotBlank(changeSupplier)) {
List<SupplierSimpleRsp> supplierSimple = supplierService.getSupplierName(changeSupplier);
if (CollectionUtils.isNotEmpty(supplierSimple)) {
SupplierSimpleRsp supplier = supplierSimple.get(0);
changeSupplierName = supplier.getSupplierName();
}
}
changeFlowExcelDTO.setSupplier(
StringUtils.isBlank(changeSupplier) ? "/" : changeSupplier + changeSupplierName);
changeFlowExcelDTO.setChangeItem(itemVO.getItemName());
changeFlowExcelDTO.setSPUId(itemId);
List<QcCategoryVO> qcCategoryList = qcService.getQcCategoryListByItemId(itemId);
......
......@@ -22,6 +22,11 @@ public class ChangeFlowExportQuery {
private String itemId;
/**
* 变更SKU
*/
private String skuId;
/**
* 变更供应商(变更主体为供应商时有效)
*/
private String supplier;
......@@ -91,6 +96,23 @@ public class ChangeFlowExportQuery {
*/
private Long flowId;
/**
* 变更执行人
*/
private String changeExecUser;
/**
* 数据可见范围:仅查看我跟进的工单(默认true)
* true: 仅展示 "变更申请人/变更负责人/变更审批人=当前用户" 的变更工单
* false: 展示所有工单
*/
private Boolean onlyMyFollowed;
/**
* 当前用户邮箱(用于数据可见范围过滤)
*/
private String currentUser;
private Long limit;
private Long offset;
......
......@@ -22,6 +22,11 @@ public class ChangeFlowRequest {
private String itemId;
/**
* 变更SKU
*/
private String skuId;
/**
* 变更供应商(变更主体为供应商时有效)
*/
private String supplier;
......@@ -85,4 +90,21 @@ public class ChangeFlowRequest {
* 工单id
*/
private Long flowId;
/**
* 变更执行人
*/
private String changeExecUser;
/**
* 数据可见范围:仅查看我跟进的工单(默认true)
* true: 仅展示 "变更申请人/变更负责人/变更审批人=当前用户" 的变更工单
* false: 展示所有工单
*/
private Boolean onlyMyFollowed;
/**
* 当前用户邮箱(用于数据可见范围过滤)
*/
private String currentUser;
}
\ No newline at end of file
......@@ -200,6 +200,7 @@ public class ChangeFlowController {
*/
@GetMapping("/export")
public AjaxResult<String> export(@RequestParam(name = "itemId", required = false) String itemId,
@RequestParam(name = "skuId", required = false) String skuId,
@RequestParam(name = "supplier", required = false) String supplier,
@RequestParam(name = "parentChangeClassId", required = false) Long parentChangeClassId,
@RequestParam(name = "sonChangeClassId", required = false) Long sonChangeClassId,
......@@ -207,13 +208,16 @@ public class ChangeFlowController {
@RequestParam(name = "changeCommander", required = false) String changeCommander,
@RequestParam(name = "changeDepartment", required = false) String changeDepartment,
@RequestParam(name = "changeExecDepartment", required = false) String changeExecDepartment,
@RequestParam(name = "changeExecUser", required = false) String changeExecUser,
@RequestParam(name = "startTime", required = false) Long startTime,
@RequestParam(name = "endTime", required = false) Long endTime,
@RequestParam(name = "createSource", required = false, defaultValue = "1") Integer createSource,
@RequestParam(name = "serviceCode") String serviceCode,
@RequestParam(name = "flowId", required = false) Long flowId) {
@RequestParam(name = "flowId", required = false) Long flowId,
@RequestParam(name = "onlyMyFollowed", defaultValue = "true") Boolean onlyMyFollowed) {
ChangeFlowRequest changeFlowRequest = new ChangeFlowRequest();
changeFlowRequest.setItemId(itemId);
changeFlowRequest.setSkuId(skuId);
changeFlowRequest.setSupplier(supplier);
changeFlowRequest.setParentChangeClassId(parentChangeClassId);
changeFlowRequest.setSonChangeClassId(sonChangeClassId);
......@@ -221,10 +225,12 @@ public class ChangeFlowController {
changeFlowRequest.setChangeCommander(changeCommander);
changeFlowRequest.setChangeDepartment(changeDepartment);
changeFlowRequest.setChangeExecDepartment(changeExecDepartment);
changeFlowRequest.setChangeExecUser(changeExecUser);
changeFlowRequest.setStartTime(startTime);
changeFlowRequest.setEndTime(endTime);
changeFlowRequest.setServiceCode(serviceCode);
changeFlowRequest.setFlowId(flowId);
changeFlowRequest.setOnlyMyFollowed(onlyMyFollowed);
// QC端/协同中心可以查看所有,不加入过滤条件
if (CreateSourceEnum.QC.getType().equals(createSource)
|| CreateSourceEnum.COLLABORATION_CENTER.getType().equals(createSource)) {
......@@ -243,6 +249,14 @@ public class ChangeFlowController {
public String exportAddressBook(ChangeFlowRequest req) {
req.setUid(RequestLocalBean.getUid());
// 数据可见范围:仅查看我跟进的工单(默认true)
if (req.getOnlyMyFollowed() != null && req.getOnlyMyFollowed()) {
String currentUser = RequestLocalBean.getUid();
if (Strings.isNotBlank(currentUser)) {
req.setCurrentUser(currentUser);
log.info("[export] 数据可见范围:仅查看我跟进的工单, currentUser:{}", currentUser);
}
}
return desExportService.changeFlowExport(req);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment