提交 1d6ce1fb authored 作者: 窦馨雨's avatar 窦馨雨

合并分支 'dxy' 到 'qa'

增加店内执行计划导出/入功能 查看合并请求 !96
package com.sfa.operation.controller.sales.excel; package com.sfa.operation.controller.sales.excel;
import com.sfa.common.core.constant.RoleConstants;
import com.sfa.common.core.domain.R; import com.sfa.common.core.domain.R;
import com.sfa.common.security.annotation.Logical;
import com.sfa.common.security.annotation.RequiresRoles;
import com.sfa.operation.pojo.sales.request.ImportApExcelRequest; import com.sfa.operation.pojo.sales.request.ImportApExcelRequest;
import com.sfa.operation.service.sales.export.IImportExcelService; import com.sfa.operation.service.sales.export.IImportExcelService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -28,7 +31,9 @@ public class ApImportExcelController { ...@@ -28,7 +31,9 @@ public class ApImportExcelController {
return importExcelService.importApExcel(request); return importExcelService.importApExcel(request);
} }
@PostMapping("/update") @PostMapping("/update")
@RequiresRoles(value = {RoleConstants.OPERATION_AP_MANAGER, RoleConstants.OPERATIONZQ_AP_MANAGER, RoleConstants.OPERATIONDQ_AP_MANAGER, RoleConstants.DISTRICT_AP_MANAGER}, logical = Logical.OR)
public R updateApDisplayExcel(@RequestBody ImportApExcelRequest request) { public R updateApDisplayExcel(@RequestBody ImportApExcelRequest request) {
return importExcelService.updateApEntity(request); return importExcelService.updateApEntity(request);
} }
......
...@@ -188,24 +188,6 @@ public class NormalDisplayImportStrategyImpl implements IImportApExcelStrategy<S ...@@ -188,24 +188,6 @@ public class NormalDisplayImportStrategyImpl implements IImportApExcelStrategy<S
SalesApDisplay updateDisplay = new SalesApDisplay(); SalesApDisplay updateDisplay = new SalesApDisplay();
BeanUtils.copyProperties(dbDisplay, updateDisplay); BeanUtils.copyProperties(dbDisplay, updateDisplay);
updateDisplay.setActualMainShelfType(dto.getActualMainShelfType());
updateDisplay.setActualMainShelfQty(dto.getActualMainShelfQty());
updateDisplay.setActualEndCapQty(dto.getActualEndCapQty());
updateDisplay.setActualFloorStackArea(dto.getActualFloorStackArea());
updateDisplay.setActualFloorStackQty(dto.getActualFloorStackQty());
String actualMultiDisplay = StringUtils.trimToNull(dto.getActualMultiDisplay());
updateDisplay.setActualMultiDisplay(actualMultiDisplay);
String actualHangingStrip = StringUtils.trimToNull(dto.getActualHangingStripQuantityForm());
updateDisplay.setActualHangingStripQuantityForm(actualHangingStrip);
updateDisplay.setRemark(dto.getRemark()); updateDisplay.setRemark(dto.getRemark());
if (updateDisplay.getPlannedMainShelfType() != null && updateDisplay.getPlannedMainShelfQty() != null if (updateDisplay.getPlannedMainShelfType() != null && updateDisplay.getPlannedMainShelfQty() != null
...@@ -246,53 +228,102 @@ public class NormalDisplayImportStrategyImpl implements IImportApExcelStrategy<S ...@@ -246,53 +228,102 @@ public class NormalDisplayImportStrategyImpl implements IImportApExcelStrategy<S
} else if (updateDisplay.getPlannedMainShelfType() != null && updateDisplay.getPlannedMainShelfQty() != null } else if (updateDisplay.getPlannedMainShelfType() != null && updateDisplay.getPlannedMainShelfQty() != null
&& (updateDisplay.getActualMainShelfType() != null || dto.getActualMainShelfQty() != null) && (updateDisplay.getActualMainShelfType() != null || dto.getActualMainShelfQty() != null)
&& (dto.getActualMainShelfType() == null || dto.getActualMainShelfQty() == null) ){ && (dto.getActualMainShelfType() == null || dto.getActualMainShelfQty() == null) ){
// 计划/实际值不全,清空执行状态
updateDisplay.setActualMainShelfExecuted("未执行"); updateDisplay.setActualMainShelfExecuted("未执行");
}else { }else {
updateDisplay.setActualMainShelfExecuted(null); updateDisplay.setActualMainShelfExecuted(null);
} }
// 2. 端架执行状态计算 // 2. 端架执行状态计算
if (dto.getActualEndCapQty() != null && updateDisplay.getPlannedEndCapQty() != null) { if (updateDisplay.getPlannedEndCapQty() != null) {
Double oldActualEndCapQty = updateDisplay.getActualEndCapQty();
if (oldActualEndCapQty != null) {
if (dto.getActualEndCapQty() != null) {
updateDisplay.setActualEndCapExecuted( updateDisplay.setActualEndCapExecuted(
dto.getActualEndCapQty() >= updateDisplay.getPlannedEndCapQty() ? "执行" : "未执行" dto.getActualEndCapQty() >= updateDisplay.getPlannedEndCapQty() ? "执行" : "未执行"
); );
} else { } else { // DTO没值(原本有值→现在没值):改为未执行
updateDisplay.setActualEndCapExecuted(null); updateDisplay.setActualEndCapExecuted("未执行");
}
}
} }
// 3. 地堆执行状态计算 // 3. 地堆是否执行计算
if (updateDisplay.getPlannedFloorStackArea() != null && updateDisplay.getPlannedFloorStackQty() != null if (updateDisplay.getPlannedFloorStackArea() != null && updateDisplay.getPlannedFloorStackQty() != null) {
&& dto.getActualFloorStackArea() != null && dto.getActualFloorStackQty() != null) {
Double oldActualFloorStackArea = updateDisplay.getActualFloorStackArea();
Integer oldActualFloorStackQty = updateDisplay.getActualFloorStackQty();
boolean hasOldActualValue = (oldActualFloorStackArea != null) || (oldActualFloorStackQty != null);
if (hasOldActualValue) {
boolean hasNewArea = dto.getActualFloorStackArea() != null;
boolean hasNewQty = dto.getActualFloorStackQty() != null;
if (hasNewArea && hasNewQty) {
boolean areaSufficient = dto.getActualFloorStackArea() >= updateDisplay.getPlannedFloorStackArea(); boolean areaSufficient = dto.getActualFloorStackArea() >= updateDisplay.getPlannedFloorStackArea();
boolean qtySufficient = dto.getActualFloorStackQty() >= updateDisplay.getPlannedFloorStackQty(); boolean qtySufficient = dto.getActualFloorStackQty() >= updateDisplay.getPlannedFloorStackQty();
updateDisplay.setActualFloorStackExecuted((areaSufficient && qtySufficient) ? "执行" : "未执行"); updateDisplay.setActualFloorStackExecuted((areaSufficient && qtySufficient) ? "执行" : "未执行");
} else { } else {
updateDisplay.setActualFloorStackExecuted(null); updateDisplay.setActualFloorStackExecuted("未执行");
}
}
} }
// 4. 多点陈列执行状态(处理空字符串) // 4. 多点陈列执行状态计算
if (updateDisplay.getPlannedMultiDisplay() != null && actualMultiDisplay != null) { // 计划有值才处理
if (updateDisplay.getPlannedMultiDisplay() != null) {
// 获取原有实际值(updateDisplay的旧值)
String oldActualMultiDisplay = updateDisplay.getActualMultiDisplay();
// 判断原有实际值是否有值(非空非空白)
// 原本实际有值
if (oldActualMultiDisplay != null && !StringUtils.isBlank(oldActualMultiDisplay)) {
// DTO传了新值:判断是否一致
if (updateDisplay.getActualMultiDisplay() != null && !StringUtils.isBlank(dto.getActualMultiDisplay())) {
updateDisplay.setActualMultiDisplayExecuted( updateDisplay.setActualMultiDisplayExecuted(
StringUtils.equals("执行与计划一致", actualMultiDisplay) ? "执行" : "未执行" StringUtils.equals("执行与计划一致", dto.getActualMultiDisplay()) ? "执行" : "未执行"
); );
} else { } else { // DTO没传新值(原本有值→现在没值):改为未执行
updateDisplay.setActualMultiDisplayExecuted(null); updateDisplay.setActualMultiDisplayExecuted("未执行");
}
}
} }
// 5. 挂条执行状态(处理空字符串) // 5. 挂条执行状态(处理空字符串)
if (updateDisplay.getPlannedHangingStripQuantityForm() != null && actualHangingStrip != null) { if (updateDisplay.getPlannedHangingStripQuantityForm() != null) {
String oldActualHangingStrip = updateDisplay.getActualHangingStripQuantityForm();
if (oldActualHangingStrip != null && !StringUtils.isBlank(oldActualHangingStrip)) {
if (updateDisplay.getActualHangingStripQuantityForm() != null && !StringUtils.isBlank(dto.getActualHangingStripQuantityForm())) {
updateDisplay.setHangingStripExecuted( updateDisplay.setHangingStripExecuted(
StringUtils.equals("执行与计划一致", actualHangingStrip) ? "执行" : "未执行" StringUtils.equals("执行与计划一致", dto.getActualHangingStripQuantityForm()) ? "执行" : "未执行"
); );
} else { } else {
updateDisplay.setHangingStripExecuted(null); updateDisplay.setHangingStripExecuted("未执行");
}
}
} }
updateDisplay.setActualMainShelfType(dto.getActualMainShelfType());
updateDisplay.setActualMainShelfQty(dto.getActualMainShelfQty());
updateDisplay.setActualEndCapQty(dto.getActualEndCapQty());
updateDisplay.setActualFloorStackArea(dto.getActualFloorStackArea());
updateDisplay.setActualFloorStackQty(dto.getActualFloorStackQty());
String actualMultiDisplay = StringUtils.trimToNull(dto.getActualMultiDisplay());
updateDisplay.setActualMultiDisplay(actualMultiDisplay);
String actualHangingStrip = StringUtils.trimToNull(dto.getActualHangingStripQuantityForm());
updateDisplay.setActualHangingStripQuantityForm(actualHangingStrip);
// 添加到更新列表 // 添加到更新列表
updateEntityList.add(updateDisplay); updateEntityList.add(updateDisplay);
} }
return updateEntityList; return updateEntityList;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论