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.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.row.SimpleRowHeightStyleStrategy;
import com.google.common.collect.Lists;
@ -13,12 +15,14 @@ import com.mathvision.diet.repository.MenuDishRepository;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
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.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@ -110,7 +114,7 @@ public class MenuDishService {
List<Pair<String, MenuDishItemDTO>> items = dishes.stream().map(dish -> {
List<MenuDishItemDTO> item = dish.getIngredient();
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 {
return Pair.of(dish.getName(), item.get(itemIndex - 1));
}
@ -121,20 +125,27 @@ public class MenuDishService {
items.forEach(item -> {
content.add(item.getKey());
content.add(keyName.getOrDefault(item.getValue().getKey(), item.getValue().getKey()));
allCrows.forEach(crow -> {
BigDecimal value = item.getValue().getValue().get(crow);
if (value != null) {
content.add(value);
}
});
allCrows.forEach(crow -> content.add(item.getValue().getValue().get(crow)));
});
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)
.registerWriteHandler(new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle))
.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);
}
}
}

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

@ -1,5 +1,6 @@
package com.mathvision.diet.service;
import com.google.common.collect.Lists;
import com.mathvision.diet.entity.Nutrition;
import com.mathvision.diet.repository.NutritionRepository;
import lombok.extern.slf4j.Slf4j;
@ -66,7 +67,14 @@ public class NutritionService {
}
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) {

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

@ -83,14 +83,14 @@ public class VenderService {
if (CollectionUtils.isNotEmpty(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) {
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 {
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.JpaSpecificationExecutor;
import java.util.List;
public interface NutritionRepository extends JpaRepository<Nutrition, Long>, JpaSpecificationExecutor<Nutrition> {
List<Nutrition> findByNameLike(String name);
Page<Nutrition> findByNameLikeOrderByIdDesc(String name, Pageable pageable);
boolean existsByName(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);
@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);
@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);
@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);

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

@ -58,7 +58,7 @@ public class GlobalRequestAspect implements HandlerInterceptor, WebMvcConfigurer
@Override
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) {

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), "[[参数错误]请选择存在的单位!]");
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

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.stereotype.Controller;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.RequestMapping;
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.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.file.Paths;
@RequestMapping("/icon")
import static org.springframework.http.MediaType.IMAGE_JPEG_VALUE;
@Controller
public class IconController extends BaseController {
@ -21,11 +21,20 @@ public class IconController extends BaseController {
private String imagePath;
@ResponseBody
@RequestMapping(method = RequestMethod.PUT)
public String addIngredient(@RequestParam MultipartFile file) throws Exception {
@RequestMapping(value = "/api/icon", method = RequestMethod.PUT)
public String icon(@RequestParam MultipartFile file) throws Exception {
Assert.notNull(file, "[参数错误]请选择要上传的文件!");
String fileName = String.format("%s.%s", System.currentTimeMillis(), FilenameUtils.getExtension(file.getOriginalFilename()));
FileUtils.copyInputStreamToFile(file.getInputStream(), Paths.get(imagePath, fileName).toFile());
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
@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) {
return nutritionService.get(id);
}

Loading…
Cancel
Save