diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java index e37f2ef2..1687353d 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java @@ -920,45 +920,59 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl0){ - cgdInfo.setStatus("2"); - }else if(!StringUtils.equals("3",cgdInfo.getStatus())){ - cgdInfo.setStatus("1"); - }else{ - cgdInfo.setStatus("3"); - } - + cgdInfo.setStatus("3"); } + //更新采购单物料信息 //未入库数量 = 采购数量 - 入库数量 - 销账数量 wrksl = cgsl - rksl - xzsl; cgdInfo.setWrksl(wrksl); cgdInfo.setRksl(rksl); 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); //更新主表拣货人信息 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); //判断拣货人信息是否为空,不为空就给值 if(StringUtils.isEmpty(cgdMain.getJhBy())){ -// cgdMain.setJhBy(loginUser.getRealname()); + cgdMain.setJhBy(loginUser.getRealname()); cgdMain.setJhTime(new Date()); cgdMain.setStatus("1");//带完结 cgdMain.setCgdType("1");//待入库 cgdMainMapper.updateById(cgdMain); } + + + //查询全部采购单信息 + List cgdInfoList = cgdInfoMapper.selectList(new QueryWrapper().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){ -// cgdMain.setWjBy(loginUser.getRealname()); + if(count == cgdInfoList.size()){ + cgdMain.setWjBy(loginUser.getRealname()); cgdMain.setWjTime(new Date()); cgdMain.setStatus("2");//已完结 cgdMain.setCgdType("2");//已完结