1、需求计划申请,需用天数改为退还日期

2、设备发货,取消实际发货量限制
3、设备发货增加时间筛选
This commit is contained in:
hayu 2025-03-10 13:12:53 +08:00
parent 57775b3c17
commit f343536e3c
6 changed files with 58 additions and 20 deletions

View File

@ -74,7 +74,7 @@ public class MaTypeVo extends ParentVo {
private String needNum = "0";
/**需用天数-前端使用*/
private String times = "0";
private String times;
/**备注-前端使用*/
private String remarks;

View File

@ -74,5 +74,9 @@ public class PurchaseVo extends ParentVo {
@Excel(name = "采购金额", width = 10.0, orderNum = "9")
private String money;
private String startTime;
private String endTime;
}

View File

@ -43,11 +43,18 @@ public class PlanDetailVo {
/**
* 需用天数
*/
@NotNull(message = "需用天数不能为空", groups = {PlanDetailVo.addPlanDetail.class})
@Min(value = 1, message = "需用天数不能小于1", groups = {PlanDetailVo.addPlanDetail.class})
@Max(value = 999999, message = "需用天数不能大于999999", groups = {PlanDetailVo.addPlanDetail.class})
@Excel(name = "需用天数", width = 20.0, orderNum = "6")
// @NotNull(message = "需用天数不能为空", groups = {PlanDetailVo.addPlanDetail.class})
// @Min(value = 1, message = "需用天数不能小于1", groups = {PlanDetailVo.addPlanDetail.class})
// @Max(value = 999999, message = "需用天数不能大于999999", groups = {PlanDetailVo.addPlanDetail.class})
// @Excel(name = "需用天数", width = 20.0, orderNum = "6")
private Integer needDay;
/**
* 退还日期
*/
@Excel(name = "退还日期", width = 20.0, orderNum = "6")
private String backDate;
/**
* 备注
*/

View File

@ -20,6 +20,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -72,6 +75,28 @@ public class PurchaseServiceImpl implements PurchaseService {
vo.setLastDay(day);
});
}
// 根据日期范围筛选list数据中的lastDay并排除lastDay为"-"的情况
if (StringUtils.isNotEmpty(data.getStartTime()) && StringUtils.isNotEmpty(data.getEndTime())) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 假设日期格式是"yyyy-MM-dd"
LocalDate startTime = LocalDate.parse(data.getStartTime(), formatter);
LocalDate endTime = LocalDate.parse(data.getEndTime(), formatter);
list.removeIf(vo -> {
String lastDayStr = vo.getLastDay();
// 排除lastDay为"-"的情况
if ("-".equals(lastDayStr)) {
return true; // 直接移除该vo对象
}
try {
LocalDate lastDay = LocalDate.parse(lastDayStr, formatter);
return lastDay.isBefore(startTime) || lastDay.isAfter(endTime);
} catch (DateTimeParseException e) {
// 如果解析失败例如日期格式不正确可以选择处理异常或直接返回true来移除该条目
log.error("日期解析错误: " + lastDayStr, e);
return true;
}
});
}
}catch (Exception e){
log.error(e.toString(),e);
}
@ -234,10 +259,10 @@ public class PurchaseServiceImpl implements PurchaseService {
return ServerResponse.createErroe(supInfo.getSupName()+"-厂家合同内无此-"+details.getModel()+"-型号设备");
}
}
int needNums=Integer.parseInt(needNum);
if(ckNum+lkNum>needNums){
return ServerResponse.createErroe(details.getName()+"0"+details.getModel()+"发货量超过需求量");
}
// int needNums=Integer.parseInt(needNum);
// if(ckNum+lkNum>needNums){
// return ServerResponse.createErroe(details.getName()+"0"+details.getModel()+"发货量超过需求量");
// }
//数据校验
MaTypeVo maTypeVo=new MaTypeVo();
maTypeVo.setModelId(details.getModelId());
@ -381,10 +406,10 @@ public class PurchaseServiceImpl implements PurchaseService {
return ServerResponse.createErroe(supInfo.getSupName()+"-厂家合同内无此-"+details.getModel()+"-型号设备");
}
}
int needNums=Integer.parseInt(needNum);
if(ckNum+lkNum>needNums){
return ServerResponse.createErroe(details.getName()+"0"+details.getModel()+"发货量超过需求量");
}
// int needNums=Integer.parseInt(needNum);
// if(ckNum+lkNum>needNums){
// return ServerResponse.createErroe(details.getName()+"0"+details.getModel()+"发货量超过需求量");
// }
MaTypeVo maTypeVo=new MaTypeVo();

View File

@ -52,11 +52,12 @@
type,
name,
model,
unit
unit,
back_date
</trim>
VALUES
<foreach collection="list" item="item" separator=",">
(#{params.id},#{item.modelId},#{item.needNum},#{item.needDay},#{item.remark},#{item.type},#{item.name},#{item.model},#{item.unit})
(#{params.id},#{item.modelId},#{item.needNum},#{item.needDay},#{item.remark},#{item.type},#{item.name},#{item.model},#{item.unit},#{item.backDate})
</foreach>
</insert>
<!--添加需求计划申请节点-->
@ -98,7 +99,7 @@
apply_id,
model_id,
need_num,
need_day,
back_date,
remark,
type,
name,
@ -106,10 +107,10 @@
unit
</trim>
VALUES
(#{params.id},#{item.modelId},#{item.needNum},#{item.needDay},#{item.remark},#{item.type},#{item.name},#{item.model},#{item.unit})
(#{params.id},#{item.modelId},#{item.needNum},#{item.backDate},#{item.remark},#{item.type},#{item.name},#{item.model},#{item.unit})
</if>
<if test="item.id !=null">
UPDATE st_plan_details SET need_num = #{item.needNum},need_day = #{item.needDay},remark = #{item.remark}
UPDATE st_plan_details SET need_num = #{item.needNum},back_date = #{item.backDate},remark = #{item.remark}
WHERE id = #{item.id}
</if>
</foreach>
@ -174,6 +175,7 @@
spd.model_id AS modelId,
spd.need_num AS needNum,
spd.need_day AS needDay,
spd.back_date AS backDate,
spd.remark,
spd.type,
spd.name,

View File

@ -89,12 +89,12 @@
HAVING (SUM(spa.ck_num)+sum(spa.lk_num))=0
</if>
<if test='status=="1"'>
HAVING (SUM(spa.need_num)>(SUM(spa.ck_num)-sum(spa.lk_num))
HAVING (SUM(spa.need_num)>(SUM(spa.ck_num)+sum(spa.lk_num))
and (SUM(spa.ck_num)+sum(spa.lk_num))!=0
)
</if>
<if test='status=="2"'>
HAVING ((SUM(spa.ck_num)-sum(spa.lk_num) )>SUM(spa.need_num))
HAVING ((SUM(spa.ck_num)+sum(spa.lk_num) )>=SUM(spa.need_num))
</if>
</if>
</select>