修改入库接口状态字段逻辑

This commit is contained in:
yangjun 2025-11-19 10:18:19 +08:00
parent f0c90cc5bd
commit fb93da2094
1 changed files with 32 additions and 18 deletions

View File

@ -920,45 +920,59 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
if(StringUtils.equals("0",jhType)){//入库操作 if(StringUtils.equals("0",jhType)){//入库操作
mterialInfo.setKcsl(dqkcl); mterialInfo.setKcsl(dqkcl);
mterialInfoMapper.updateById(mterialInfo); mterialInfoMapper.updateById(mterialInfo);
}
/**单据状态 0待入库 1挂账中 2已入库 3已销账*/
//判断是否是销账操作不是销账的话
if (StringUtils.equals("0",jhType)){
cgdInfo.setStatus("2");
}else{ }else{
//不是销账判断是是否有未入库数量如果大于0则代表挂账中 cgdInfo.setStatus("3");
if(wrksl>0){
cgdInfo.setStatus("2");
}else if(!StringUtils.equals("3",cgdInfo.getStatus())){
cgdInfo.setStatus("1");
}else{
cgdInfo.setStatus("3");
}
} }
//更新采购单物料信息 //更新采购单物料信息
//未入库数量 = 采购数量 - 入库数量 - 销账数量 //未入库数量 = 采购数量 - 入库数量 - 销账数量
wrksl = cgsl - rksl - xzsl; wrksl = cgsl - rksl - xzsl;
cgdInfo.setWrksl(wrksl); cgdInfo.setWrksl(wrksl);
cgdInfo.setRksl(rksl); cgdInfo.setRksl(rksl);
cgdInfo.setXzsl(xzsl); cgdInfo.setXzsl(xzsl);
/**单据状态 0待入库 1挂账中 2已入库 3已销账*/
//判断是否是销账操作不是销账的话
if(StringUtils.equals("3",cgdInfo.getStatus())){
cgdInfo.setStatus("3");
} else if(wrksl>0){
cgdInfo.setStatus("1");
} else{
cgdInfo.setStatus("2");
}
cgdInfoMapper.updateById(cgdInfo); cgdInfoMapper.updateById(cgdInfo);
//更新主表拣货人信息 //更新主表拣货人信息
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//判断拣货人信息是否为空不为空就给值 //判断拣货人信息是否为空不为空就给值
if(StringUtils.isEmpty(cgdMain.getJhBy())){ if(StringUtils.isEmpty(cgdMain.getJhBy())){
// cgdMain.setJhBy(loginUser.getRealname()); cgdMain.setJhBy(loginUser.getRealname());
cgdMain.setJhTime(new Date()); cgdMain.setJhTime(new Date());
cgdMain.setStatus("1");//带完结 cgdMain.setStatus("1");//带完结
cgdMain.setCgdType("1");//待入库 cgdMain.setCgdType("1");//待入库
cgdMainMapper.updateById(cgdMain); cgdMainMapper.updateById(cgdMain);
} }
//查询全部采购单信息
List<NuInvoicingCgdInfo> cgdInfoList = cgdInfoMapper.selectList(new QueryWrapper<NuInvoicingCgdInfo>().eq("cgd_id",cgdInfo.getCgdId()));
int count = 0;
/**单据状态 0待入库 1挂账中 2已入库 3已销账*/
for (NuInvoicingCgdInfo info : cgdInfoList) {
//判断采购物料状态
if(StringUtils.equals("2",info.getStatus())){
count++;
}else if(StringUtils.equals("3",info.getStatus()) || StringUtils.equals("2",info.getStatus())){
count++;
}else if(StringUtils.equals("0",info.getStatus())){
break;
}
}
//判断单据是否完结 如果采购数量 = 入库数量 + 销账数量 就代表这个单据完结了 //判断单据是否完结 如果采购数量 = 入库数量 + 销账数量 就代表这个单据完结了
if(cgsl == rksl + xzsl){ if(count == cgdInfoList.size()){
// cgdMain.setWjBy(loginUser.getRealname()); cgdMain.setWjBy(loginUser.getRealname());
cgdMain.setWjTime(new Date()); cgdMain.setWjTime(new Date());
cgdMain.setStatus("2");//已完结 cgdMain.setStatus("2");//已完结
cgdMain.setCgdType("2");//已完结 cgdMain.setCgdType("2");//已完结