caoyiwen 2 years ago
parent
commit
4b29d8ffd6
  1. 31
      diet-core/src/main/java/com/mathvision/diet/service/MenuDishService.java
  2. 10
      diet-core/src/main/java/com/mathvision/diet/service/NutritionService.java
  3. 6
      diet-core/src/main/java/com/mathvision/diet/service/VenderService.java
  4. 3
      diet-dao/src/main/java/com/mathvision/diet/repository/NutritionRepository.java
  5. 2
      diet-dao/src/main/java/com/mathvision/diet/repository/VenderRepository.java
  6. 2
      diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java
  7. 2
      diet-web/src/main/java/com/mathvision/diet/controller/DishController.java
  8. 23
      diet-web/src/main/java/com/mathvision/diet/controller/IconController.java
  9. 2
      diet-web/src/main/java/com/mathvision/diet/controller/NutritionController.java

31
diet-core/src/main/java/com/mathvision/diet/service/MenuDishService.java

@ -2,6 +2,8 @@ package com.mathvision.diet.service;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy; import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy;
import com.alibaba.excel.write.style.row.SimpleRowHeightStyleStrategy; import com.alibaba.excel.write.style.row.SimpleRowHeightStyleStrategy;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -13,12 +15,14 @@ import com.mathvision.diet.repository.MenuDishRepository;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.OutputStream; import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
@ -110,7 +114,7 @@ public class MenuDishService {
List<Pair<String, MenuDishItemDTO>> items = dishes.stream().map(dish -> { List<Pair<String, MenuDishItemDTO>> items = dishes.stream().map(dish -> {
List<MenuDishItemDTO> item = dish.getIngredient(); List<MenuDishItemDTO> item = dish.getIngredient();
if (item == null || item.size() < itemIndex) { if (item == null || item.size() < itemIndex) {
return Pair.of(dish.getName(), MenuDishItemDTO.builder().value(Maps.newHashMap()).build()); return Pair.of("", MenuDishItemDTO.builder().value(Maps.newHashMap()).build());
} else { } else {
return Pair.of(dish.getName(), item.get(itemIndex - 1)); return Pair.of(dish.getName(), item.get(itemIndex - 1));
} }
@ -121,20 +125,27 @@ public class MenuDishService {
items.forEach(item -> { items.forEach(item -> {
content.add(item.getKey()); content.add(item.getKey());
content.add(keyName.getOrDefault(item.getValue().getKey(), item.getValue().getKey())); content.add(keyName.getOrDefault(item.getValue().getKey(), item.getValue().getKey()));
allCrows.forEach(crow -> { allCrows.forEach(crow -> content.add(item.getValue().getValue().get(crow)));
BigDecimal value = item.getValue().getValue().get(crow);
if (value != null) {
content.add(value);
}
});
}); });
contents.add(content); contents.add(content);
}); });
}); });
}); });
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);
contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);
EasyExcel.write(outputStream).head(headers) EasyExcel.write(outputStream).head(headers)
.registerWriteHandler(new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle))
.registerWriteHandler(new SimpleColumnWidthStyleStrategy(25)) .registerWriteHandler(new SimpleColumnWidthStyleStrategy(25))
.registerWriteHandler(new SimpleRowHeightStyleStrategy((short)30,(short)20)) .registerWriteHandler(new SimpleRowHeightStyleStrategy((short)30, (short)20))
.excelType(ExcelTypeEnum.XLSX).sheet(menu.getName()).doWrite(contents); .excelType(ExcelTypeEnum.XLSX).sheet(menu.getName()).doWrite(contents);
} }
} }

10
diet-core/src/main/java/com/mathvision/diet/service/NutritionService.java

@ -1,5 +1,6 @@
package com.mathvision.diet.service; package com.mathvision.diet.service;
import com.google.common.collect.Lists;
import com.mathvision.diet.entity.Nutrition; import com.mathvision.diet.entity.Nutrition;
import com.mathvision.diet.repository.NutritionRepository; import com.mathvision.diet.repository.NutritionRepository;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -66,7 +67,14 @@ public class NutritionService {
} }
public List<Nutrition> query(Long vender, String name) { public List<Nutrition> query(Long vender, String name) {
return nutritionRepository.findAll().stream().filter(x -> (StringUtils.isBlank(name) || x.getName().contains(name)) && (vender == null || vender ==0 || x.getVendors().contains(vender))).collect(Collectors.toList()); if (StringUtils.isBlank(name)) {
return Lists.newArrayList();
}
List<Nutrition> result = nutritionRepository.findByNameLike('%' + name + '%');
if (vender != null && vender !=0) {
return result.stream().filter(x -> x.getVendors().contains(vender)).collect(Collectors.toList());
}
return result;
} }
public Page<Nutrition> list(String name, PageRequest pageRequest) { public Page<Nutrition> list(String name, PageRequest pageRequest) {

6
diet-core/src/main/java/com/mathvision/diet/service/VenderService.java

@ -83,14 +83,14 @@ public class VenderService {
if (CollectionUtils.isNotEmpty(vendors)) { if (CollectionUtils.isNotEmpty(vendors)) {
return venderRepository.findByIdIn(vendors); return venderRepository.findByIdIn(vendors);
} }
return StringUtils.isNotBlank(keyword) ? venderRepository.findByStatusAndNameLikeOrderByNameDesc(true, keyword) : venderRepository.findByStatusOrderByNameAsc(true); return StringUtils.isNotBlank(keyword) ? venderRepository.findByStatusAndNameLikeOrderByNameDesc(true, '%' + keyword + '%') : venderRepository.findByStatusOrderByNameAsc(true);
} }
public Page<Vender> pageVender(String keyword, VenderType type, PageRequest pageRequest) { public Page<Vender> pageVender(String keyword, VenderType type, PageRequest pageRequest) {
if (type == null) { if (type == null) {
return StringUtils.isBlank(keyword) ? venderRepository.findAll(pageRequest) : venderRepository.findByNameLikeOrderByIdDesc(keyword, pageRequest); return StringUtils.isBlank(keyword) ? venderRepository.findAll(pageRequest) : venderRepository.findByNameLikeOrderByIdDesc('%' + keyword + '%', pageRequest);
} else { } else {
return StringUtils.isBlank(keyword) ? venderRepository.findByCategoryOrderByIdDesc(type, pageRequest) : venderRepository.findByCategoryAndNameLikeOrderByIdDesc(type, keyword, pageRequest); return StringUtils.isBlank(keyword) ? venderRepository.findByCategoryOrderByIdDesc(type, pageRequest) : venderRepository.findByCategoryAndNameLikeOrderByIdDesc(type, '%' + keyword + '%', pageRequest);
} }
} }

3
diet-dao/src/main/java/com/mathvision/diet/repository/NutritionRepository.java

@ -6,7 +6,10 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
public interface NutritionRepository extends JpaRepository<Nutrition, Long>, JpaSpecificationExecutor<Nutrition> { public interface NutritionRepository extends JpaRepository<Nutrition, Long>, JpaSpecificationExecutor<Nutrition> {
List<Nutrition> findByNameLike(String name);
Page<Nutrition> findByNameLikeOrderByIdDesc(String name, Pageable pageable); Page<Nutrition> findByNameLikeOrderByIdDesc(String name, Pageable pageable);
boolean existsByName(String name); boolean existsByName(String name);
Nutrition findByName(String name); Nutrition findByName(String name);

2
diet-dao/src/main/java/com/mathvision/diet/repository/VenderRepository.java

@ -19,7 +19,7 @@ public interface VenderRepository extends JpaRepository<Vender, Long>, JpaSpecif
Page<Vender> findByCategoryOrderByIdDesc(VenderType category, Pageable pageable); Page<Vender> findByCategoryOrderByIdDesc(VenderType category, Pageable pageable);
@Query("select new Vender(v.id, v.name, v.account, v.category) from Vender v where v.id in ?1") @Query("select new Vender(v.id, v.name, v.account, v.category) from Vender v where v.id in ?1")
List<Vender> findByIdIn(Collection<Long> ids); List<Vender> findByIdIn(Collection<Long> ids);
@Query("select new Vender(v.id, v.name, v.account, v.category) from Vender v where v.status = ?1 and v.name like concat(?2, '%') order by v.name DESC") @Query("select new Vender(v.id, v.name, v.account, v.category) from Vender v where v.status = ?1 and v.name like ?2 order by v.name DESC")
List<Vender> findByStatusAndNameLikeOrderByNameDesc(Boolean status, String name); List<Vender> findByStatusAndNameLikeOrderByNameDesc(Boolean status, String name);
@Query("select new Vender(v.id, v.name, v.account, v.category) from Vender v where v.status = ?1 order by v.name") @Query("select new Vender(v.id, v.name, v.account, v.category) from Vender v where v.status = ?1 order by v.name")
List<Vender> findByStatusOrderByNameAsc(Boolean status); List<Vender> findByStatusOrderByNameAsc(Boolean status);

2
diet-web/src/main/java/com/mathvision/diet/aspect/GlobalRequestAspect.java

@ -58,7 +58,7 @@ public class GlobalRequestAspect implements HandlerInterceptor, WebMvcConfigurer
@Override @Override
public void afterCompletion(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler, Exception ex) { public void afterCompletion(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler, Exception ex) {
Session.clear();; Session.clear();
} }
private boolean verifySession(HttpServletRequest request, HttpServletResponse response) { private boolean verifySession(HttpServletRequest request, HttpServletResponse response) {

2
diet-web/src/main/java/com/mathvision/diet/controller/DishController.java

@ -64,7 +64,7 @@ public class DishController extends BaseController {
Assert.isTrue(vendors.stream().allMatch(venderService::exists), "[[参数错误]请选择存在的单位!]"); Assert.isTrue(vendors.stream().allMatch(venderService::exists), "[[参数错误]请选择存在的单位!]");
Instant dateTime = Instant.now(); Instant dateTime = Instant.now();
dishService.add(vendors.stream().map(vender -> Dish.builder().name(name).vender(vender).marks(mark).month(month).icon(icon).ingredient(items).operate(getUid()).created(dateTime).modify(dateTime).build()).collect(Collectors.toList()), getUid()); dishService.add(vendors.stream().map(vender -> Dish.builder().name(name).vender(vender).marks(mark).poly(poly).month(month).icon(icon).ingredient(items).operate(getUid()).created(dateTime).modify(dateTime).build()).collect(Collectors.toList()), getUid());
} }
@ResponseBody @ResponseBody

23
diet-web/src/main/java/com/mathvision/diet/controller/IconController.java

@ -5,15 +5,15 @@ import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.file.Paths; import java.nio.file.Paths;
@RequestMapping("/icon") import static org.springframework.http.MediaType.IMAGE_JPEG_VALUE;
@Controller @Controller
public class IconController extends BaseController { public class IconController extends BaseController {
@ -21,11 +21,20 @@ public class IconController extends BaseController {
private String imagePath; private String imagePath;
@ResponseBody @ResponseBody
@RequestMapping(method = RequestMethod.PUT) @RequestMapping(value = "/api/icon", method = RequestMethod.PUT)
public String addIngredient(@RequestParam MultipartFile file) throws Exception { public String icon(@RequestParam MultipartFile file) throws Exception {
Assert.notNull(file, "[参数错误]请选择要上传的文件!"); Assert.notNull(file, "[参数错误]请选择要上传的文件!");
String fileName = String.format("%s.%s", System.currentTimeMillis(), FilenameUtils.getExtension(file.getOriginalFilename())); String fileName = String.format("%s.%s", System.currentTimeMillis(), FilenameUtils.getExtension(file.getOriginalFilename()));
FileUtils.copyInputStreamToFile(file.getInputStream(), Paths.get(imagePath, fileName).toFile()); FileUtils.copyInputStreamToFile(file.getInputStream(), Paths.get(imagePath, fileName).toFile());
return fileName; return fileName;
} }
@ResponseBody
@RequestMapping(value = "/icon/{filename}", method = RequestMethod.GET)
public void icon(@PathVariable("filename")String fileName) throws IOException {
HttpServletResponse response = getResponse();
response.setContentType(IMAGE_JPEG_VALUE);
response.getOutputStream().write(FileUtils.readFileToByteArray(Paths.get(imagePath, fileName).toFile()));
response.flushBuffer();
}
} }

2
diet-web/src/main/java/com/mathvision/diet/controller/NutritionController.java

@ -99,7 +99,7 @@ public class NutritionController extends BaseController {
@ResponseBody @ResponseBody
@RequestMapping(value="select", method = RequestMethod.GET) @RequestMapping(value="select", method = RequestMethod.GET)
public Object query(@RequestParam(required = false) Long id, @RequestParam(required = false) String keyword, @RequestParam(required = false) Long vender) { public Object query(@RequestParam(required = false) Long id, @RequestParam(required = false, value = "name") String keyword, @RequestParam(required = false) Long vender) {
if (id != null) { if (id != null) {
return nutritionService.get(id); return nutritionService.get(id);
} }

Loading…
Cancel
Save