1、pad端退货流程接口逻辑调整:服务指令工单开始结束跟退货单业务不再相互影响,随时可以开始/结束服务指令工单

2、pad端请领流程接口逻辑调整:护理员、库管服务指令工单来源均为日常/即时指令,不再根据请领单的提交生成服务指令工单,指令可随时点击开始/结束。请领单业务流程不再跟指令工单相互影响,只保留请领业务本身的验证,如请领单已被作废时,库管没刷新界面点击了入库按钮的判断
This commit is contained in:
1378012178@qq.com 2025-12-31 13:42:03 +08:00
parent 6a63d58d00
commit 787c0a65d5
2 changed files with 1614 additions and 188 deletions

View File

@ -273,17 +273,17 @@ public class QingLingServiceImpl implements IQinglingApi {
Map<String, Object> result = Maps.newHashMap();
if (StringUtils.isNotBlank(dto.getQldNo())) {
//检测是否已经开始服务
{
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setFlowCode("ql_sq");
p_.setBizId(dto.getQldNo());
Map<String,String> j = invoicingQlOrdersApi.izCanReSubmit(p_);
if(!j.get("error_code").equals("0")){
result.put("status", "faild");
result.put("message", j.get("msg"));
return result;
}
}
// {
// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
// p_.setFlowCode("ql_sq");
// p_.setBizId(dto.getQldNo());
// Map<String,String> j = invoicingQlOrdersApi.izCanReSubmit(p_);
// if(!j.get("error_code").equals("0")){
// result.put("status", "faild");
// result.put("message", j.get("msg"));
// return result;
// }
// }
//检测是否可以正常提交
if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "3")) {
@ -293,14 +293,14 @@ public class QingLingServiceImpl implements IQinglingApi {
}
//检测是否有物料
QueryWrapper<NuInvoicingQldInfo> infoQW = new QueryWrapper<>();
infoQW.eq("qld_no", dto.getQldNo());
List<NuInvoicingQldInfo> infoList = invoicingQldInfoMapper.selectList(infoQW);
if (CollectionUtils.isEmpty(infoList)) {
result.put("status", "faild");
result.put("message", "不存在物料,无法提交");
return result;
}
// QueryWrapper<NuInvoicingQldInfo> infoQW = new QueryWrapper<>();
// infoQW.eq("qld_no", dto.getQldNo());
// List<NuInvoicingQldInfo> infoList = invoicingQldInfoMapper.selectList(infoQW);
// if (CollectionUtils.isEmpty(infoList)) {
// result.put("status", "faild");
// result.put("message", "不存在物料,无法提交");
// return result;
// }
//回退单-提交
QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
@ -312,7 +312,6 @@ public class QingLingServiceImpl implements IQinglingApi {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//日志表插记录
NuInvoicingQldLog logData = new NuInvoicingQldLog();
logData.setQldNo(dto.getQldNo());//请领单号
@ -339,28 +338,28 @@ public class QingLingServiceImpl implements IQinglingApi {
//检测 必须有新的指令 并且已经点击开始
{
//指令工单处判断是否允许提交
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setFlowCode("ql_sq");
p_.setNuId(dto.getNuId());
p_.setElderId(dto.getElderId());
Map<String,String> j = invoicingQlOrdersApi.izCanSubmit(p_);
if(!j.get("error_code").equals("0")){
result.put("status", "faild");
result.put("message", j.get("msg"));
return result;
}
// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
// p_.setFlowCode("ql_sq");
// p_.setNuId(dto.getNuId());
// p_.setElderId(dto.getElderId());
// Map<String,String> j = invoicingQlOrdersApi.izCanSubmit(p_);
// if(!j.get("error_code").equals("0")){
// result.put("status", "faild");
// result.put("message", j.get("msg"));
// return result;
// }
//检测通过了 继续检测对应护理单元是否有未完结请领单
QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
qw.eq("nu_id", dto.getNuId());
qw.eq("elder_id", dto.getElderId());
qw.in("status", "1", "3", "4");
List<NuInvoicingQldMain> list = invoicingQldMainMapper.selectList(qw);
if (!CollectionUtils.isEmpty(list)) {
result.put("status", "faild");
result.put("message", "有未完结请领单,暂时无法提交");
return result;
}
// QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
// qw.eq("nu_id", dto.getNuId());
// qw.eq("elder_id", dto.getElderId());
// qw.in("status", "1", "3", "4");
// List<NuInvoicingQldMain> list = invoicingQldMainMapper.selectList(qw);
// if (!CollectionUtils.isEmpty(list)) {
// result.put("status", "faild");
// result.put("message", "有未完结请领单,暂时无法提交");
// return result;
// }
}
//购物车-提交
@ -371,13 +370,13 @@ public class QingLingServiceImpl implements IQinglingApi {
List<NuInvoicingQldGwc> gwcList = invoicingQldGwcService.list(gwcQW);
//请购车未添加物料
if (CollectionUtils.isEmpty(gwcList)) {
result.put("status", "empty");
result.put("message", "请选择请领物料");
return result;
}
// if (CollectionUtils.isEmpty(gwcList)) {
// result.put("status", "empty");
// result.put("message", "请选择请领物料");
// return result;
// }
//检测哪些物料有未完成请领流程的
//检测哪些物料有未完成请领流程的
{
//请领流程未完成物料id
List<InvoicingQldInfoEntity> disabledWlList = invoicingQldMainMapper.queryUnFinishWlid(dto);
@ -506,14 +505,14 @@ public class QingLingServiceImpl implements IQinglingApi {
result.put("status", "success");
result.put("message", "提交成功");
InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity();
orderEntity.setFlowCode("ql_sq");//指令流程flow_code 看接口有标明
orderEntity.setBizId(saveData.getQldNo());//请领单号
orderEntity.setNuId(saveData.getNuId());
orderEntity.setElderId(saveData.getElderId());//长者id
orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id
// InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity();
// orderEntity.setFlowCode("ql_sq");//指令流程flow_code 看接口有标明
// orderEntity.setBizId(saveData.getQldNo());//请领单号
// orderEntity.setNuId(saveData.getNuId());
// orderEntity.setElderId(saveData.getElderId());//长者id
// orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id
//修改指令工单中的业务单号
invoicingQlOrdersApi.updateOrderBizId(orderEntity);
// invoicingQlOrdersApi.updateOrderBizId(orderEntity);
return result;
}
}
@ -636,30 +635,30 @@ public class QingLingServiceImpl implements IQinglingApi {
String nowStatus = one.getStatus();
//检测是否已经开始服务
if ("3".equals(nowStatus)) {
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setFlowCode("ql_sq");
p_.setIzRollback("Y");
p_.setBizId(dto.getQldNo());
Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
if(!j.get("error_code").equals("0")){
result.put("status", "faild");
result.put("message", j.get("msg"));
return result;
}
}
// if ("3".equals(nowStatus)) {
// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
// p_.setFlowCode("ql_sq");
// p_.setIzRollback("Y");
// p_.setBizId(dto.getQldNo());
// Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
// if(!j.get("error_code").equals("0")){
// result.put("status", "faild");
// result.put("message", j.get("msg"));
// return result;
// }
// }
//检测是否可作废
if ("1".equals(nowStatus)) {
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setFlowCode("ql_ck");
p_.setBizId(dto.getQldNo());
Map<String,String> j = invoicingQlOrdersApi.izCanCancel(p_);
if(!j.get("error_code").equals("0")){
result.put("status", "faild");
result.put("message", j.get("msg"));
return result;
}
}
// if ("1".equals(nowStatus)) {
// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
// p_.setFlowCode("ql_ck");
// p_.setBizId(dto.getQldNo());
// Map<String,String> j = invoicingQlOrdersApi.izCanCancel(p_);
// if(!j.get("error_code").equals("0")){
// result.put("status", "faild");
// result.put("message", j.get("msg"));
// return result;
// }
// }
//日志表插记录
NuInvoicingQldLog logData = new NuInvoicingQldLog();
@ -681,16 +680,16 @@ public class QingLingServiceImpl implements IQinglingApi {
InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity();
orderEntity.setBizId(dto.getQldNo());//请领单号
orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id
if ("1".equals(nowStatus)) {
//已提交直接作废
orderEntity.setFlowCode("ql_zf");//指令流程flow_code 看接口有标明
invoicingQlOrdersApi.flowQlzf(orderEntity);
}
if ("3".equals(nowStatus)) {
//回退单作废
orderEntity.setFlowCode("ql_htzf");//指令流程flow_code 看接口有标明
invoicingQlOrdersApi.flowQlzf(orderEntity);
}
// if ("1".equals(nowStatus)) {
// //已提交直接作废
// orderEntity.setFlowCode("ql_zf");//指令流程flow_code 看接口有标明
// invoicingQlOrdersApi.flowQlzf(orderEntity);
// }
// if ("3".equals(nowStatus)) {
// //回退单作废
// orderEntity.setFlowCode("ql_htzf");//指令流程flow_code 看接口有标明
// invoicingQlOrdersApi.flowQlzf(orderEntity);
// }
invoicingQldMainService.updateById(one);
result.put("status", "success");
result.put("message", "作废成功");
@ -734,17 +733,17 @@ public class QingLingServiceImpl implements IQinglingApi {
Map<String, String> result = Maps.newHashMap();
//检测是否已经开始服务
{
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setFlowCode("ql_sh");
p_.setBizId(dto.getQldNo());
Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
if(!j.get("error_code").equals("0")){
result.put("status", "faild");
result.put("message", j.get("msg"));
return result;
}
}
// {
// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
// p_.setFlowCode("ql_sh");
// p_.setBizId(dto.getQldNo());
// Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
// if(!j.get("error_code").equals("0")){
// result.put("status", "faild");
// result.put("message", j.get("msg"));
// return result;
// }
// }
//检测是否可以正常收货
if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "4")) {
@ -931,17 +930,17 @@ public class QingLingServiceImpl implements IQinglingApi {
public Map<String, String> orderReturn(InvoicingQldMainEntity dto) {
Map<String, String> result = Maps.newHashMap();
//检测是否已经开始服务
{
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setFlowCode("ql_ck");
p_.setBizId(dto.getQldNo());
Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
if(!j.get("error_code").equals("0")){
result.put("status", "faild");
result.put("message", j.get("msg"));
return result;
}
}
// {
// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
// p_.setFlowCode("ql_ck");
// p_.setBizId(dto.getQldNo());
// Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
// if(!j.get("error_code").equals("0")){
// result.put("status", "faild");
// result.put("message", j.get("msg"));
// return result;
// }
// }
//检测是否可以正常回退
if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1,4")) {
@ -992,17 +991,17 @@ public class QingLingServiceImpl implements IQinglingApi {
//出库一次只会有一个出库单了
Map<String, Object> map = new HashMap<>();
//检测是否已经开始服务
{
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setFlowCode("ql_ck");
p_.setBizId(dto.getQldNo());
Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
if(!j.get("error_code").equals("0")){
map.put("status", "faild");
map.put("message", j.get("msg"));
return map;
}
}
// {
// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
// p_.setFlowCode("ql_ck");
// p_.setBizId(dto.getQldNo());
// Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
// if(!j.get("error_code").equals("0")){
// map.put("status", "faild");
// map.put("message", j.get("msg"));
// return map;
// }
// }
//检测单子状态是否正确
if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1")) {
@ -1301,88 +1300,94 @@ public class QingLingServiceImpl implements IQinglingApi {
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String, String> finishDirectiveServe(InvoicingQldQueryEntity dto) {
Map<String,String> map = new HashMap();
map.put("error_code","0");
map.put("msg","可以提交");
//获取工单请领单判断是否可完成
InvoicingOrdersEntity ioe = new InvoicingOrdersEntity();
ioe.setId(dto.getId());
InvoicingOrdersEntity entity = invoicingOrdersApi.getOrderInfo(ioe);
if(entity!=null){
String qldNo = entity.getBizId();//业务单号
if(qldNo!=null&&!qldNo.equals("")){
//获取请领单
QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
qw.eq("qld_no", qldNo);
NuInvoicingQldMain main = invoicingQldMainService.getOne(qw);
if (main != null) {
map = this.izCanFinish(entity.getFlowCode(),main.getStatus());
if(!map.get("error_code").equals("0")){
return map;
}
//满足完成条件
//完成
// Map<String,String> map = new HashMap();
// map.put("error_code","0");
// map.put("msg","可以提交");
// //获取工单请领单判断是否可完成
// InvoicingOrdersEntity ioe = new InvoicingOrdersEntity();
// ioe.setId(dto.getId());
// InvoicingOrdersEntity entity = invoicingOrdersApi.getOrderInfo(ioe);
// if(entity!=null){
// String qldNo = entity.getBizId();//业务单号
// if(qldNo!=null&&!qldNo.equals("")){
// //获取请领单
// QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
// qw.eq("qld_no", qldNo);
// NuInvoicingQldMain main = invoicingQldMainService.getOne(qw);
// if (main != null) {
// map = this.izCanFinish(entity.getFlowCode(),main.getStatus());
// if(!map.get("error_code").equals("0")){
// return map;
// }
// //满足完成条件
// //完成
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
// p_.setId(dto.getId());
// p_.setInitiatorId(sysUser.getEmployessId());
// map = invoicingOrdersApi.finishOrder(p_);
// if(!map.get("error_code").equals("0")){
// return map;
// }
// //生成新单据
// createNextOrder(entity,main);
// }else{
// map.put("error_code","1");
// map.put("msg","请领单不存在");
// return map;
// }
// }else{
// map.put("error_code","1");
// map.put("msg","请先提交请领单");
// return map;
// }
// }else{
// map.put("error_code","1");
// map.put("msg","工单不存在");
// return map;
// }
// return map;
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setId(dto.getId());
p_.setInitiatorId(sysUser.getEmployessId());
map = invoicingOrdersApi.finishOrder(p_);
if(!map.get("error_code").equals("0")){
return map;
}
//生成新单据
createNextOrder(entity,main);
}else{
map.put("error_code","1");
map.put("msg","请领单不存在");
return map;
}
}else{
map.put("error_code","1");
map.put("msg","请先提交请领单");
return map;
}
}else{
map.put("error_code","1");
map.put("msg","工单不存在");
return map;
}
return map;
return invoicingOrdersApi.finishOrder(p_);
}
/**
* 判断是否可结束工单
*
* @return
*/
private Map<String, String> izCanFinish(String flowCode,String status){
Map<String,String> map = new HashMap();
map.put("error_code","0");
map.put("msg","可以结束");
private Map<String, String> izCanFinish(String flowCode, String status) {
Map<String, String> map = new HashMap();
map.put("error_code", "0");
map.put("msg", "可以结束");
//完成结束判断算法
//申请可完成 flowCode=ql_sq完成时只有2种判断1业务单号qldNo不为空 2已提交status=1
//出库可完成 flowCode=ql_ck完成时只有2种判断1已出库status=4 2已回退status=3
//收货可完成 flowCode=ql_sh完成时只有1种判断1已收货status=5
//不考虑作废情况作废时会将ql_sq的工单状态恢复成最原始状态判断算法使用根据一申请可完成
//申请可完成判断
if(flowCode.equals("ql_sq")){
if(!status.equals("1")){
map.put("error_code","1");
map.put("msg","请先提交请领单");
if (flowCode.equals("ql_sq")) {
if (!status.equals("1")) {
map.put("error_code", "1");
map.put("msg", "请先提交请领单");
}
}
//出库可完成判断
if(flowCode.equals("ql_ck")){
if(status.equals("3")||status.equals("4")){
}else{
map.put("error_code","1");
map.put("msg","请先出库或回退");
if (flowCode.equals("ql_ck")) {
if (status.equals("3") || status.equals("4")) {
} else {
map.put("error_code", "1");
map.put("msg", "请先出库或回退");
}
}
//收货可完成判断
if(flowCode.equals("ql_sh")){
if(!status.equals("5")){
map.put("error_code","1");
map.put("msg","请先收货");
if (flowCode.equals("ql_sh")) {
if (!status.equals("5")) {
map.put("error_code", "1");
map.put("msg", "请先收货");
}
}
return map;
@ -1391,7 +1396,7 @@ public class QingLingServiceImpl implements IQinglingApi {
/**
* 生成下一服务指令工单
*/
private void createNextOrder(InvoicingOrdersEntity entity,NuInvoicingQldMain main){
private void createNextOrder(InvoicingOrdersEntity entity, NuInvoicingQldMain main) {
String flowCode = entity.getFlowCode();
String status = main.getStatus();
InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity();
@ -1402,16 +1407,16 @@ public class QingLingServiceImpl implements IQinglingApi {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
orderEntity.setInitiatorId(sysUser.getEmployessId());//提交人id
//生成请领下一步服务指令
if(flowCode.equals("ql_sq")){
if (flowCode.equals("ql_sq")) {
invoicingQlOrdersApi.flowQlsq(orderEntity);
}
if(flowCode.equals("ql_ck")){
if (flowCode.equals("ql_ck")) {
//生成出库下一步服务指令
if(status.equals("4")){
if (status.equals("4")) {
invoicingQlOrdersApi.flowQlck(orderEntity);
}
//生成回退下一步服务指令
if(status.equals("3")){
if (status.equals("3")) {
invoicingQlOrdersApi.flowQlht(orderEntity);
}
}