diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingQldApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingQldApi.java index 1e38d77..3570c4b 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingQldApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingQldApi.java @@ -116,6 +116,24 @@ public class InvoicingQldApi { } } + /** + * 请领单-移除物料 + * 传请领单号+物料id + * + * @param queryDto + * @return + */ + @ApiOperation(value = "请领单-移除物料", notes = "请领单-移除物料") + @PostMapping(value = "/deleteQldWl") + public Result deleteQldWl(@RequestBody InvoicingQldQueryEntity queryDto) { + boolean result = qinglingApi.deleteQldWl(queryDto); + if (result) { + return Result.OK("移除成功"); + } else { + return Result.error("移除失败"); + } + } + /** * 请领单-购物车-清空 * 传nuid+elderid @@ -318,15 +336,28 @@ public class InvoicingQldApi { */ @ApiOperation(value = "请领单-出库(单个/批量)", notes = "请领单-出库(单个/批量)") @PostMapping(value = "/outbound") - public Result outbound(@RequestBody InvoicingQldMainEntity dto) { + public Result> outbound(@RequestBody InvoicingQldMainEntity dto) { if (StringUtils.isBlank(dto.getQldNo())) { return Result.error("缺少参数"); } - boolean result = qinglingApi.outbound(dto); + return Result.ok(qinglingApi.outbound(dto)); + } + + /** + * 请领单-调整物料数量 + * 传请领单号+物料id+物料数量 + * + * @param queryDto + * @return + */ + @ApiOperation(value = "请领单-调整物料数量", notes = "请领单-调整物料数量") + @PostMapping(value = "/updateQldWlSl") + public Result updateQldWlSl(@RequestBody InvoicingQldQueryEntity queryDto) { + boolean result = qinglingApi.updateQldWlSl(queryDto); if (result) { - return Result.OK("出库成功"); + return Result.OK("修改成功"); } else { - return Result.error("出库失败"); + return Result.error("修改失败"); } } diff --git a/nursing-unit-common/src/main/java/com/nu/entity/InvoicingQldQueryEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/InvoicingQldQueryEntity.java index d15a8eb..08ec682 100644 --- a/nursing-unit-common/src/main/java/com/nu/entity/InvoicingQldQueryEntity.java +++ b/nursing-unit-common/src/main/java/com/nu/entity/InvoicingQldQueryEntity.java @@ -56,4 +56,9 @@ public class InvoicingQldQueryEntity{ */ private String searchContent; + /** + * 请领数量 + */ + private Integer qlNum; + } diff --git a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IQinglingApi.java b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IQinglingApi.java index 6851ae3..dd3b8fd 100644 --- a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IQinglingApi.java +++ b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IQinglingApi.java @@ -43,5 +43,9 @@ public interface IQinglingApi { boolean orderReturn(InvoicingQldMainEntity dto); - boolean outbound(InvoicingQldMainEntity dto); + Map outbound(InvoicingQldMainEntity dto); + + boolean deleteQldWl(InvoicingQldQueryEntity queryDto); + + boolean updateQldWlSl(InvoicingQldQueryEntity queryDto); } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/ConfigMaterial/service/impl/ConfigMaterialCategoryServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/ConfigMaterial/service/impl/ConfigMaterialCategoryServiceImpl.java index 69f666c..ed653d0 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/ConfigMaterial/service/impl/ConfigMaterialCategoryServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/ConfigMaterial/service/impl/ConfigMaterialCategoryServiceImpl.java @@ -211,7 +211,7 @@ public class ConfigMaterialCategoryServiceImpl extends ServiceImpl { @Autowired private INuInvoicingQldInfoService nuInvoicingQldInfoService; - + /** * 分页列表查询 * @@ -71,10 +71,10 @@ public class NuInvoicingQldInfoController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingQldInfo, req.getParameterMap()); Page page = new Page(pageNo, pageSize); - IPage pageList = nuInvoicingQldInfoService.page(page, queryWrapper); + IPage pageList = nuInvoicingQldInfoService.pages(page, nuInvoicingQldInfo); return Result.OK(pageList); } - + /** * 添加 * @@ -89,7 +89,7 @@ public class NuInvoicingQldInfoController extends JeecgController { List queryWlInfo(InvoicingQldQueryEntity queryDto); + + IPage pages(Page page, @Param("dto") NuInvoicingQldInfo dto); + + int deleteQldWl(InvoicingQldQueryEntity queryDto); + + int updateQldWlSl(InvoicingQldQueryEntity queryDto); } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/mapper/xml/NuInvoicingQldInfoMapper.xml b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/mapper/xml/NuInvoicingQldInfoMapper.xml index ae2eac4..2b0ee89 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/mapper/xml/NuInvoicingQldInfoMapper.xml +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/mapper/xml/NuInvoicingQldInfoMapper.xml @@ -56,4 +56,49 @@ ORDER BY MAX(info.create_time) DESC + + + + + delete from nu_invoicing_qld_info where qld_no = #{qldNo} and wl_id = #{wlId} + + + + update nu_invoicing_qld_info set ql_num = #{qlNum} where qld_no = #{qldNo} and wl_id = #{wlId} + diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/INuInvoicingQldInfoService.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/INuInvoicingQldInfoService.java index 7fcd56f..2f2895c 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/INuInvoicingQldInfoService.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/INuInvoicingQldInfoService.java @@ -1,5 +1,8 @@ package com.nu.modules.qld.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nu.modules.qld.entity.NuInvoicingQldInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface INuInvoicingQldInfoService extends IService { + IPage pages(Page page, NuInvoicingQldInfo dto); } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/INuInvoicingQldLogService.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/INuInvoicingQldLogService.java index 1421bfc..dfd73cc 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/INuInvoicingQldLogService.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/INuInvoicingQldLogService.java @@ -11,4 +11,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface INuInvoicingQldLogService extends IService { + boolean opeNodeJudgeCanStatus(String qldNo, String status); + } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/NuInvoicingQldInfoServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/NuInvoicingQldInfoServiceImpl.java index 06b9f44..bb140ff 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/NuInvoicingQldInfoServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/NuInvoicingQldInfoServiceImpl.java @@ -1,5 +1,8 @@ package com.nu.modules.qld.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nu.modules.qld.entity.NuInvoicingQldInfo; import com.nu.modules.qld.mapper.NuInvoicingQldInfoMapper; import com.nu.modules.qld.service.INuInvoicingQldInfoService; @@ -16,4 +19,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class NuInvoicingQldInfoServiceImpl extends ServiceImpl implements INuInvoicingQldInfoService { + @Override + public IPage pages(Page page, NuInvoicingQldInfo dto) { + return baseMapper.pages(page,dto); + } } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/NuInvoicingQldLogServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/NuInvoicingQldLogServiceImpl.java index dbee099..b319ce8 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/NuInvoicingQldLogServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/NuInvoicingQldLogServiceImpl.java @@ -1,19 +1,51 @@ package com.nu.modules.qld.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nu.modules.qld.entity.NuInvoicingQldLog; import com.nu.modules.qld.mapper.NuInvoicingQldLogMapper; import com.nu.modules.qld.service.INuInvoicingQldLogService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.util.CollectionUtils; + +import java.util.Arrays; +import java.util.List; /** * @Description: 进销存-请领单-操作日志表 * @Author: jeecg-boot - * @Date: 2025-11-26 + * @Date: 2025-11-26 * @Version: V1.0 */ @Service public class NuInvoicingQldLogServiceImpl extends ServiceImpl implements INuInvoicingQldLogService { + /** + * 操作节点是否可以正常执行(如是否可以提交) + * + * @param qldNo + * @param status 需要判断操作节点 ->之前应该存在的状态<- 多个使用逗号分隔 + * @return + */ + @Override + public boolean opeNodeJudgeCanStatus(String qldNo, String status) { + QueryWrapper logQW = new QueryWrapper<>(); + logQW.eq("qld_no", qldNo); + logQW.orderByDesc("create_time"); + List logList = baseMapper.selectList(logQW); + if (!CollectionUtils.isEmpty(logList)) { + String status_ = logList.get(0).getStatus(); + String[] statusArray = status.split(","); + for (String s : statusArray) { + if (s.equals(status_)) { + return true; + } + } + return false; + } else { + return false; + } + } + } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java index dfe7487..dfc7946 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java @@ -37,6 +37,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.RedisUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -95,6 +96,8 @@ public class QingLingServiceImpl implements IQinglingApi { private IBlWarehouseMaterialInfoService warehouseMaterialInfoService; @Autowired private INuWarehouseMaterialCrkInfoService warehouseMaterialCrkInfoService; + @Autowired + private RedisUtil redisUtil; @Override public List> getMaterialTreeData(MaterialCategoryEntity materialCategoryEntity) { @@ -184,6 +187,14 @@ public class QingLingServiceImpl implements IQinglingApi { return invoicingQldGwcService.deletePhysics(queryDto.getGwcId()) > 0 ? true : false; } + @Override + public boolean deleteQldWl(InvoicingQldQueryEntity queryDto) { + if (StringUtils.isBlank(queryDto.getQldNo()) || StringUtils.isBlank(queryDto.getWlId())) { + return false; + } + return invoicingQldInfoMapper.deleteQldWl(queryDto) > 0 ? true : false; + } + @Override public boolean removeAllGwc(InvoicingQldQueryEntity queryDto) { if (StringUtils.isBlank(queryDto.getNuId()) || StringUtils.isBlank(queryDto.getElderId())) { @@ -246,6 +257,12 @@ public class QingLingServiceImpl implements IQinglingApi { public Map submitQld(InvoicingQldGwcEntity dto) { Map result = Maps.newHashMap(); if (StringUtils.isNotBlank(dto.getQldNo())) { + //检测是否可以正常提交 + if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "3")) { + result.put("status", "faild"); + return result; + } + //回退单-提交 QueryWrapper qw = new QueryWrapper<>(); qw.eq("qld_no", dto.getQldNo()); @@ -284,6 +301,12 @@ public class QingLingServiceImpl implements IQinglingApi { gwcQW.eq("elder_id", dto.getElderId()); List gwcList = invoicingQldGwcService.list(gwcQW); + //请购车未添加物料 + if (CollectionUtils.isEmpty(gwcList)) { + result.put("status", "empty"); + return result; + } + //检测哪些物料有未完成请领流程的 { //请领流程未完成物料id @@ -521,12 +544,14 @@ public class QingLingServiceImpl implements IQinglingApi { @Override public boolean cancellation(InvoicingQldMainEntity dto) { + //检测是否可以正常作废 + if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1,3")) { + return false; + } + QueryWrapper qw = new QueryWrapper<>(); qw.eq("qld_no", dto.getQldNo()); NuInvoicingQldMain one = invoicingQldMainService.getOne(qw); - if (one == null || !"1".equals(one.getStatus())) { - return false; - } dto.setNuId(one.getNuId()); dto.setElderId(one.getElderId()); String status = "2"; @@ -579,7 +604,11 @@ public class QingLingServiceImpl implements IQinglingApi { @Override @Transactional(rollbackFor = Exception.class) public boolean confirmReceipt(InvoicingQldMainEntity dto) { -// Map result = Maps.newHashMap(); + //检测是否可以正常收货 + if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "4")) { + return false; + } + String status = "5"; LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); @@ -720,12 +749,14 @@ public class QingLingServiceImpl implements IQinglingApi { @Override public boolean orderReturn(InvoicingQldMainEntity dto) { + //检测是否可以正常回退 + if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1,4")) { + return false; + } + QueryWrapper qw = new QueryWrapper<>(); qw.eq("qld_no", dto.getQldNo()); NuInvoicingQldMain one = invoicingQldMainService.getOne(qw); - if (one == null || "2".equals(one.getStatus()) || "3".equals(one.getStatus()) || "5".equals(one.getStatus())) { - return false; - } dto.setNuId(one.getNuId()); dto.setElderId(one.getElderId()); String status = "3"; @@ -751,7 +782,26 @@ public class QingLingServiceImpl implements IQinglingApi { } @Override - public boolean outbound(InvoicingQldMainEntity dto) { + public Map outbound(InvoicingQldMainEntity dto) { + Map map = new HashMap<>(); + + //检测是否可以正常出库 + String[] qldNosArr = dto.getQldNo().split(","); + //本次处理单号中 - 不可出库单号 + String cannotHandleQldNos = Arrays.stream(qldNosArr) + .filter(qldNo -> !invoicingQldLogService.opeNodeJudgeCanStatus(qldNo, "1")) + .collect(Collectors.joining(",")); + //本次处理单号中 - 可正常出库单号 + String normalQldNos = Arrays.stream(qldNosArr) + .filter(qldNo -> !cannotHandleQldNos.contains(qldNo)) + .collect(Collectors.joining(",")); + if (StringUtils.isBlank(normalQldNos)) { + map.put("status", "faild"); + map.put("faildQldNos", cannotHandleQldNos); + return map; + } + + dto.setQldNo(normalQldNos); QueryWrapper qw = new QueryWrapper<>(); qw.in("qld_no", dto.getQldNo().split(",")); List list = invoicingQldMainService.list(qw); @@ -784,7 +834,16 @@ public class QingLingServiceImpl implements IQinglingApi { qldData.setIzYgRead("N");//员工改为未读 qldData.setCkBy(sysUser.getId());//出库人 qldData.setCkTime(new Date());//出库时间 - return invoicingQldMainService.update(qldData, qw); + invoicingQldMainService.update(qldData, qw); + map.put("status", "success"); + return map; } + @Override + public boolean updateQldWlSl(InvoicingQldQueryEntity queryDto) { + if (StringUtils.isBlank(queryDto.getQldNo()) || StringUtils.isBlank(queryDto.getWlId()) || queryDto.getQlNum() == null) { + return false; + } + return invoicingQldInfoMapper.updateQldWlSl(queryDto) > 0 ? true : false; + } }