Commit f93efe87 by 王志超

feat: 变更工单导出改造

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