|
|
package com.spring.modules.sift.controller;
import com.spring.common.utils.R;import com.spring.modules.sift.entity.QuerySavedDetail;import com.spring.modules.sift.entity.QuerySavedHeader;import com.spring.modules.sift.entity.QueryUserSetting;import com.spring.modules.sift.entity.QueryUserSettingDefault;import com.spring.modules.sift.service.QuerySavedDetailService;import com.spring.modules.sift.service.QuerySavedHeaderService;import com.spring.modules.sift.service.QueryUserSettingDefaultService;import com.spring.modules.sift.service.QueryUserSettingService;import com.spring.modules.sift.vo.QuerySavedVo;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.util.StringUtils;import org.springframework.web.bind.annotation.*;import java.util.List;
@RestController@RequestMapping("/sift")@Slf4jpublic class QueryUserSettingController { private static final String ROHS_MENU_ID = "112001"; private static final String TOOL_APPLY_MENU_ID = "106002"; private static final String TECHNICAL_SPEC_MENU_ID = "103002"; private static final String TECHNICAL_SPEC_REMARK_PAGE_FIELD_NAME = "remarkPage"; private static final String TECHNICAL_SPEC_REMARK_PAGE_FIELD_CAPTION = "备注区"; private static final String TECHNICAL_SPEC_REMARK_PAGE_ORIGINAL_FIELD = "a.remarkPage"; private static final String ROHS_STATUS_FIELD_NAME = "rohsStatus"; private static final String ROHS_STATUS_FIELD_NAME_UNDERSCORE = "rohs_status"; private static final String ROHS_STATUS_FIELD_CAPTION = "状态/RoHS Status"; private static final String ROHS_STATUS_ORIGINAL_FIELD = "a.rohs_status"; private static final String TOOL_APPLY_PR_NO_FIELD_NAME = "prNo"; private static final String TOOL_APPLY_PO_NO_FIELD_NAME = "poNo"; private static final String TOOL_APPLY_SUPPLIER_NAME_FIELD_NAME = "supplierName"; private static final String TOOL_APPLY_ALL_COST_FIELD_NAME = "allCost"; private static final String TOOL_APPLY_PR_NO_FIELD_CAPTION = "IFS PR编号"; private static final String TOOL_APPLY_PO_NO_FIELD_CAPTION = "采购订单号"; private static final String TOOL_APPLY_SUPPLIER_NAME_FIELD_CAPTION = "厂商名称"; private static final String TOOL_APPLY_ALL_COST_FIELD_CAPTION = "总成本(元)"; private static final String TOOL_APPLY_PR_NO_ORIGINAL_FIELD = "a.prNo"; private static final String TOOL_APPLY_PO_NO_ORIGINAL_FIELD = "a.poNo"; private static final String TOOL_APPLY_SUPPLIER_NAME_ORIGINAL_FIELD = "a.supplierName"; private static final String TOOL_APPLY_ALL_COST_ORIGINAL_FIELD = "a.allCost"; private static final String STRING_DATA_TYPE = "S"; private static final String NUMBER_DATA_TYPE = "N";
@Autowired private QueryUserSettingDefaultService defaultService;
@Autowired private QueryUserSettingService queryUserSettingService;
@Autowired private QuerySavedHeaderService querySavedHeaderService;
@Autowired private QuerySavedDetailService querySavedDetailService;
@GetMapping("/list") public R searchUserSettingList(String menuId,String userId){ List<QueryUserSetting> queryUserSettingList = queryUserSettingService.searchQueryUserSetting(menuId, userId); if (!queryUserSettingList.isEmpty()){ appendRohsStatusFieldForUserSetting(menuId, userId, queryUserSettingList); appendToolApplyFieldsForUserSetting(menuId, userId, queryUserSettingList); appendTechnicalSpecRemarkPageFieldForUserSetting(menuId, userId, queryUserSettingList); return R.ok().put("rows",queryUserSettingList); } List<QueryUserSettingDefault> defaultList = defaultService.searchQueryUserSettingDefault(menuId); appendRohsStatusFieldForDefaultSetting(menuId, defaultList); appendToolApplyFieldsForDefaultSetting(menuId, defaultList); appendTechnicalSpecRemarkPageFieldForDefaultSetting(menuId, defaultList); return R.ok().put("rows",defaultList); }
@PostMapping("/saveOrUpdateBatch") public R saveOrUpdateBatch(@RequestBody List<QueryUserSetting> queryUserSettingList){ queryUserSettingService.saveOrUpdateBatch(queryUserSettingList); return R.ok().put("msg","保存成功!"); }
@GetMapping("/recording") public R searchQuerySavedRecord(String menuId,String userId,Integer itemNo){ List<QuerySavedDetail> querySavedVoList = querySavedDetailService.searchQuerySavedDetail(menuId,userId,itemNo); return R.ok().put("rows",querySavedVoList); }
@GetMapping("/recordList") public R searchQuerySavedRecordList(String menuId,String userId){ List<QuerySavedHeader> savedHeaderList = querySavedHeaderService.searchQuerySavedHeader(menuId, userId); return R.ok().put("rows",savedHeaderList); }
@PostMapping("/saveRecord") public R saveQueryHeaderDetail(@RequestBody QuerySavedVo querySavedVo){ querySavedHeaderService.saveQueryHeader(querySavedVo); return R.ok().put("msg","操作成功"); }
@PostMapping("/record/remove") public R removeQuerySavedRecordHeader(@RequestBody QuerySavedHeader querySavedHeader){ querySavedHeaderService.removeQuerySavedHeader(querySavedHeader); return R.ok().put("msg","删除成功"); }
@PostMapping("/record/update") public R updateQuerySavedRecordHeader(@RequestBody QuerySavedVo querySavedVo){ querySavedHeaderService.updateQuerySavedHeader(querySavedVo); return R.ok("保存成功"); }
private void appendRohsStatusFieldForUserSetting(String menuId, String userId, List<QueryUserSetting> settingList) { if (!ROHS_MENU_ID.equals(menuId) || settingList == null) { return; } boolean exists = settingList.stream().anyMatch(item -> isRohsStatusField(item.getFieldName(), item.getOriginalField())); if (exists) { return; } QueryUserSetting row = new QueryUserSetting(); row.setMenuId(menuId); row.setUserId(userId); row.setDtsName(getDtsNameFromUserSetting(settingList)); row.setDtsCaption(getDtsCaptionFromUserSetting(settingList)); row.setFieldName(ROHS_STATUS_FIELD_NAME); row.setFieldCaption(ROHS_STATUS_FIELD_CAPTION); row.setOriginalField(ROHS_STATUS_ORIGINAL_FIELD); row.setDataType(STRING_DATA_TYPE); row.setVisible("Y"); row.setShowSeqNo(getNextSeqFromUserSetting(settingList)); row.setSymbol(""); row.setFormula(""); row.setSortBy(""); row.setOrderSeq(""); settingList.add(row); }
private void appendRohsStatusFieldForDefaultSetting(String menuId, List<QueryUserSettingDefault> settingList) { if (!ROHS_MENU_ID.equals(menuId) || settingList == null) { return; } boolean exists = settingList.stream().anyMatch(item -> isRohsStatusField(item.getFieldName(), item.getOriginalField())); if (exists) { return; } QueryUserSettingDefault row = new QueryUserSettingDefault(); row.setMenuId(menuId); row.setDtsName(getDtsNameFromDefaultSetting(settingList)); row.setDtsCaption(getDtsCaptionFromDefaultSetting(settingList)); row.setFieldName(ROHS_STATUS_FIELD_NAME); row.setFieldCaption(ROHS_STATUS_FIELD_CAPTION); row.setOriginalField(ROHS_STATUS_ORIGINAL_FIELD); row.setDataType(STRING_DATA_TYPE); row.setVisible("Y"); row.setShowSeqNo(getNextSeqFromDefaultSetting(settingList)); row.setSymbol(""); row.setFormula(""); row.setSortBy(""); row.setOrderSeq(""); settingList.add(row); }
private void appendToolApplyFieldsForUserSetting(String menuId, String userId, List<QueryUserSetting> settingList) { if (!TOOL_APPLY_MENU_ID.equals(menuId) || settingList == null) { return; } appendToolApplyFieldForUserSetting(menuId, userId, settingList, TOOL_APPLY_PR_NO_FIELD_NAME, TOOL_APPLY_PR_NO_FIELD_CAPTION, TOOL_APPLY_PR_NO_ORIGINAL_FIELD, STRING_DATA_TYPE); appendToolApplyFieldForUserSetting(menuId, userId, settingList, TOOL_APPLY_PO_NO_FIELD_NAME, TOOL_APPLY_PO_NO_FIELD_CAPTION, TOOL_APPLY_PO_NO_ORIGINAL_FIELD, STRING_DATA_TYPE); appendToolApplyFieldForUserSetting(menuId, userId, settingList, TOOL_APPLY_SUPPLIER_NAME_FIELD_NAME, TOOL_APPLY_SUPPLIER_NAME_FIELD_CAPTION, TOOL_APPLY_SUPPLIER_NAME_ORIGINAL_FIELD, STRING_DATA_TYPE); appendToolApplyFieldForUserSetting(menuId, userId, settingList, TOOL_APPLY_ALL_COST_FIELD_NAME, TOOL_APPLY_ALL_COST_FIELD_CAPTION, TOOL_APPLY_ALL_COST_ORIGINAL_FIELD, NUMBER_DATA_TYPE); }
private void appendToolApplyFieldsForDefaultSetting(String menuId, List<QueryUserSettingDefault> settingList) { if (!TOOL_APPLY_MENU_ID.equals(menuId) || settingList == null) { return; } appendToolApplyFieldForDefaultSetting(menuId, settingList, TOOL_APPLY_PR_NO_FIELD_NAME, TOOL_APPLY_PR_NO_FIELD_CAPTION, TOOL_APPLY_PR_NO_ORIGINAL_FIELD, STRING_DATA_TYPE); appendToolApplyFieldForDefaultSetting(menuId, settingList, TOOL_APPLY_PO_NO_FIELD_NAME, TOOL_APPLY_PO_NO_FIELD_CAPTION, TOOL_APPLY_PO_NO_ORIGINAL_FIELD, STRING_DATA_TYPE); appendToolApplyFieldForDefaultSetting(menuId, settingList, TOOL_APPLY_SUPPLIER_NAME_FIELD_NAME, TOOL_APPLY_SUPPLIER_NAME_FIELD_CAPTION, TOOL_APPLY_SUPPLIER_NAME_ORIGINAL_FIELD, STRING_DATA_TYPE); appendToolApplyFieldForDefaultSetting(menuId, settingList, TOOL_APPLY_ALL_COST_FIELD_NAME, TOOL_APPLY_ALL_COST_FIELD_CAPTION, TOOL_APPLY_ALL_COST_ORIGINAL_FIELD, NUMBER_DATA_TYPE); }
private void appendTechnicalSpecRemarkPageFieldForUserSetting(String menuId, String userId, List<QueryUserSetting> settingList) { if (!TECHNICAL_SPEC_MENU_ID.equals(menuId) || settingList == null) { return; } appendToolApplyFieldForUserSetting(menuId, userId, settingList, TECHNICAL_SPEC_REMARK_PAGE_FIELD_NAME, TECHNICAL_SPEC_REMARK_PAGE_FIELD_CAPTION, TECHNICAL_SPEC_REMARK_PAGE_ORIGINAL_FIELD, STRING_DATA_TYPE); }
private void appendTechnicalSpecRemarkPageFieldForDefaultSetting(String menuId, List<QueryUserSettingDefault> settingList) { if (!TECHNICAL_SPEC_MENU_ID.equals(menuId) || settingList == null) { return; } appendToolApplyFieldForDefaultSetting(menuId, settingList, TECHNICAL_SPEC_REMARK_PAGE_FIELD_NAME, TECHNICAL_SPEC_REMARK_PAGE_FIELD_CAPTION, TECHNICAL_SPEC_REMARK_PAGE_ORIGINAL_FIELD, STRING_DATA_TYPE); }
private void appendToolApplyFieldForUserSetting(String menuId, String userId, List<QueryUserSetting> settingList, String fieldName, String fieldCaption, String originalField, String dataType) { if (containsUserSettingField(settingList, fieldName, originalField)) { return; } QueryUserSetting row = new QueryUserSetting(); row.setMenuId(menuId); row.setUserId(userId); row.setDtsName(getDtsNameFromUserSetting(settingList)); row.setDtsCaption(getDtsCaptionFromUserSetting(settingList)); row.setFieldName(fieldName); row.setFieldCaption(fieldCaption); row.setOriginalField(originalField); row.setDataType(dataType); row.setVisible("Y"); row.setShowSeqNo(getNextSeqFromUserSetting(settingList)); row.setSymbol(""); row.setFormula(""); row.setSortBy(""); row.setOrderSeq(""); settingList.add(row); }
private void appendToolApplyFieldForDefaultSetting(String menuId, List<QueryUserSettingDefault> settingList, String fieldName, String fieldCaption, String originalField, String dataType) { if (containsDefaultSettingField(settingList, fieldName, originalField)) { return; } QueryUserSettingDefault row = new QueryUserSettingDefault(); row.setMenuId(menuId); row.setDtsName(getDtsNameFromDefaultSetting(settingList)); row.setDtsCaption(getDtsCaptionFromDefaultSetting(settingList)); row.setFieldName(fieldName); row.setFieldCaption(fieldCaption); row.setOriginalField(originalField); row.setDataType(dataType); row.setVisible("Y"); row.setShowSeqNo(getNextSeqFromDefaultSetting(settingList)); row.setSymbol(""); row.setFormula(""); row.setSortBy(""); row.setOrderSeq(""); settingList.add(row); }
private boolean containsUserSettingField(List<QueryUserSetting> settingList, String fieldName, String originalField) { String normalizedFieldName = normalizeSettingField(fieldName); String normalizedOriginalField = normalizeSettingField(originalField); for (QueryUserSetting item : settingList) { if (item == null) { continue; } if (normalizedFieldName.equals(normalizeSettingField(item.getFieldName())) || normalizedOriginalField.equals(normalizeSettingField(item.getOriginalField()))) { return true; } } return false; }
private boolean containsDefaultSettingField(List<QueryUserSettingDefault> settingList, String fieldName, String originalField) { String normalizedFieldName = normalizeSettingField(fieldName); String normalizedOriginalField = normalizeSettingField(originalField); for (QueryUserSettingDefault item : settingList) { if (item == null) { continue; } if (normalizedFieldName.equals(normalizeSettingField(item.getFieldName())) || normalizedOriginalField.equals(normalizeSettingField(item.getOriginalField()))) { return true; } } return false; }
private String normalizeSettingField(String value) { return value == null ? "" : value.trim().toLowerCase(); }
private Integer getNextSeqFromUserSetting(List<QueryUserSetting> settingList) { int max = 0; for (QueryUserSetting item : settingList) { if (item != null && item.getShowSeqNo() != null && item.getShowSeqNo() > max) { max = item.getShowSeqNo(); } } return max + 1; }
private Integer getNextSeqFromDefaultSetting(List<QueryUserSettingDefault> settingList) { int max = 0; for (QueryUserSettingDefault item : settingList) { if (item != null && item.getShowSeqNo() != null && item.getShowSeqNo() > max) { max = item.getShowSeqNo(); } } return max + 1; }
private String getDtsNameFromUserSetting(List<QueryUserSetting> settingList) { for (QueryUserSetting item : settingList) { if (item != null && StringUtils.hasText(item.getDtsName())) { return item.getDtsName(); } } return "ADOQResult"; }
private String getDtsNameFromDefaultSetting(List<QueryUserSettingDefault> settingList) { for (QueryUserSettingDefault item : settingList) { if (item != null && StringUtils.hasText(item.getDtsName())) { return item.getDtsName(); } } return "ADOQResult"; }
private String getDtsCaptionFromUserSetting(List<QueryUserSetting> settingList) { for (QueryUserSetting item : settingList) { if (item != null && StringUtils.hasText(item.getDtsCaption())) { return item.getDtsCaption(); } } return ""; }
private String getDtsCaptionFromDefaultSetting(List<QueryUserSettingDefault> settingList) { for (QueryUserSettingDefault item : settingList) { if (item != null && StringUtils.hasText(item.getDtsCaption())) { return item.getDtsCaption(); } } return ""; }
private boolean isRohsStatusField(String fieldName, String originalField) { String normalizedFieldName = fieldName == null ? "" : fieldName.trim(); if (ROHS_STATUS_FIELD_NAME.equalsIgnoreCase(normalizedFieldName) || ROHS_STATUS_FIELD_NAME_UNDERSCORE.equalsIgnoreCase(normalizedFieldName)) { return true; } String normalizedOriginalField = originalField == null ? "" : originalField.trim().toLowerCase(); return normalizedOriginalField.endsWith(".rohs_status") || ROHS_STATUS_FIELD_NAME_UNDERSCORE.equals(normalizedOriginalField); }}
|