Browse Source

导入赋值、loss标红去除

zhouxingyu 1 day ago
parent
commit
34220cf6d5

+ 18 - 1
lg-code/src/main/java/org/jeecg/modules/DestRule/controller/DestRuleController.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.DestRule.controller;
 
 import java.util.Arrays;
+import java.util.List;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -16,6 +17,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.modules.RegionRule.entity.RegionRule;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 import org.jeecg.common.aspect.annotation.AutoLog;
@@ -144,7 +146,22 @@ public class DestRuleController extends JeecgController<DestRule, IDestRuleServi
     */
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, DestRule.class);
+		Result<?> result = super.importExcel(request, response, DestRule.class);
+		if(result.isSuccess()) {
+			//更新schedule
+			List<DestRule> list = destRuleService.list();
+			list.forEach(item -> {
+				if("DO".equals(item.getToSite().substring(item.getToSite().length() - 2))) {
+					item.setSchedule("Last FRI");
+				}else {
+					item.setSchedule("Last TUE");
+				}
+				destRuleService.updateById(item);
+			});
+			return Result.ok("导入成功");
+		}else {
+			return Result.error("导入失败");
+		}
     }
 
 }

+ 4 - 8
lg-code/src/main/java/org/jeecg/modules/ProdPlan/service/impl/ProdPlanServiceImpl.java

@@ -627,9 +627,8 @@ public class ProdPlanServiceImpl extends ServiceImpl<ProdPlanMapper, ProdPlan> i
         if(totalVo.getWeek3()!=null && deliveredQuantityMap.get("W" + (currentWeek - 1))!=null) {
             Double lossCellValue = (double)totalVo.getWeek3()/ deliveredQuantityMap.get("W" + (currentWeek - 1));
             Double otdCellValue = 1-(double)totalVo.getWeek3()/ deliveredQuantityMap.get("W" + (currentWeek - 1));
-            CellStyle limitLossStyle = lossCellValue < 0.95 ? noForegroundRedPercentStyle : percentStyle;
             CellStyle limitOTDStyle = otdCellValue < 0.95 ? noForegroundRedPercentStyle : percentStyle;
-            createCell(lossrow, startColumn+6, lossCellValue, limitLossStyle);
+            createCell(lossrow, startColumn+6, lossCellValue, percentStyle);
             createCell(otdrow, startColumn+6, otdCellValue, limitOTDStyle);
         }else{
 
@@ -639,25 +638,22 @@ public class ProdPlanServiceImpl extends ServiceImpl<ProdPlanMapper, ProdPlan> i
         if(totalVo.getWeek4()!=null && deliveredQuantityMap.get("W" + (currentWeek))!=null) {
             Double lossCellValue = (double)totalVo.getWeek4()/ deliveredQuantityMap.get("W" + (currentWeek));
             Double otdCellValue = 1-(double)totalVo.getWeek4()/ deliveredQuantityMap.get("W" + (currentWeek));
-            CellStyle limitLossStyle = lossCellValue < 0.95 ? noForegroundRedPercentStyle : percentStyle;
             CellStyle limitOTDStyle = otdCellValue < 0.95 ? noForegroundRedPercentStyle : percentStyle;
-            createCell(lossrow, startColumn+7, lossCellValue, limitLossStyle);
+            createCell(lossrow, startColumn+7, lossCellValue, percentStyle);
             createCell(otdrow, startColumn+7, otdCellValue, limitOTDStyle);
         }
         if(totalVo.getWeek5()!=null && deliveredQuantityMap.get("W" + (currentWeek+1))!=null) {
             Double lossCellValue = (double)totalVo.getWeek5()/ deliveredQuantityMap.get("W" + (currentWeek+1));
             Double otdCellValue = 1-(double)totalVo.getWeek5()/ deliveredQuantityMap.get("W" + (currentWeek+1));
-            CellStyle limitLossStyle = lossCellValue < 0.95 ? noForegroundRedPercentStyle : percentStyle;
             CellStyle limitOTDStyle = otdCellValue < 0.95 ? noForegroundRedPercentStyle : percentStyle;
-            createCell(lossrow, startColumn+8, lossCellValue, limitLossStyle);
+            createCell(lossrow, startColumn+8, lossCellValue, percentStyle);
             createCell(otdrow, startColumn+8, otdCellValue, limitOTDStyle);
         }
         if(totalVo.getWeek6()!=null && deliveredQuantityMap.get("W" + (currentWeek+2))!=null) {
             Double lossCellValue = (double)totalVo.getWeek6()/ deliveredQuantityMap.get("W" + (currentWeek+2));
             Double otdCellValue = 1-(double)totalVo.getWeek6()/ deliveredQuantityMap.get("W" + (currentWeek+2));
-            CellStyle limitLossStyle = lossCellValue < 0.95 ? noForegroundRedPercentStyle : percentStyle;
             CellStyle limitOTDStyle = otdCellValue < 0.95 ? noForegroundRedPercentStyle : percentStyle;
-            createCell(lossrow, startColumn+9, lossCellValue, limitLossStyle);
+            createCell(lossrow, startColumn+9, lossCellValue, percentStyle);
             createCell(otdrow, startColumn+9, otdCellValue, limitOTDStyle);
         }
 

+ 45 - 0
lg-code/src/main/java/org/jeecg/modules/RegionRule/Enum/DayEnum.java

@@ -0,0 +1,45 @@
+package org.jeecg.modules.RegionRule.Enum;
+
+import java.util.Arrays;
+
+public enum DayEnum {
+    lastMon("lastMon","LAST MON"),
+    lastTue("lastTue", "Last TUE"),
+    lastWed("lastWed", "LAST WED"),
+    lastThu("lastThu", "Last THU"),
+    lastFri("lastFri", "LAST FRI"),
+    lastSat("lastSat", "Last SAT"),
+    lastSun("lastSun", "LAST SUN"),
+    mon("mon", "MON"),
+    tue("tue", "TUE"),
+    wed("wed", "WED"),
+    thu("thu", "THU"),
+    fri("fri", "FRI"),
+    sat("sat", "SAT"),
+    sun("sun", "SUN");
+
+    private String name;
+    private String value;
+
+    DayEnum(String name, String value) {
+        this.name = name;
+        this.value = value;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public static String getDay(String day) {
+        return Arrays.stream(DayEnum.values())
+                .filter(item -> item.getName() == day)
+                .findFirst()
+                .orElseThrow(() -> new IllegalArgumentException("Invalid code: " + day)).getValue();
+    }
+
+
+}

+ 14 - 1
lg-code/src/main/java/org/jeecg/modules/RegionRule/controller/RegionRuleController.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.RegionRule.controller;
 
 import java.util.Arrays;
+import java.util.List;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -156,7 +157,19 @@ public class RegionRuleController extends JeecgController<RegionRule, IRegionRul
     */
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, RegionRule.class);
+		Result<?> result = super.importExcel(request, response, RegionRule.class);
+		if(result.isSuccess()) {
+			//更新schedule
+			List<RegionRule> list = regionRuleService.list();
+			list.forEach(item -> {
+				RegionRule.defineSchedule(item);
+				regionRuleService.updateById(item);
+			});
+			return Result.ok("导入成功");
+		}else {
+			return Result.error("导入失败");
+		}
+
     }
 
 }

+ 23 - 0
lg-code/src/main/java/org/jeecg/modules/RegionRule/entity/RegionRule.java

@@ -1,12 +1,14 @@
 package org.jeecg.modules.RegionRule.entity;
 
 import java.io.Serializable;
+import java.lang.reflect.Field;
 import java.util.Date;
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.jeecg.modules.RegionRule.Enum.DayEnum;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -99,6 +101,27 @@ public class RegionRule implements Serializable {
 	/**删除标记*/
 	@ApiModelProperty(value = "删除标记")
 	private int isDel;
+	@Excel(name = "schedule", width = 15)
 	private String schedule;
 
+	public static void defineSchedule(RegionRule regionRule) {
+		Class<?> clazz = regionRule.getClass();
+		Field[] fields = clazz.getDeclaredFields();
+		for (Field field : fields) {
+			field.setAccessible(true);
+			String fieldName = field.getName();
+			Object fieldValue;
+			try {
+				fieldValue = field.get(regionRule);
+				if("√".equals(fieldValue)) {
+					regionRule.setSchedule(DayEnum.getDay(fieldName));
+					return;
+				}
+			} catch (IllegalAccessException e) {
+				fieldValue = null;
+			}
+		}
+
+	}
+
 }