|
|
@ -10,21 +10,25 @@ import com.ruoyi.common.core.redis.RedisCache; |
|
|
|
import com.ruoyi.common.utils.DateUtils; |
|
|
|
|
|
|
|
import com.ruoyi.common.utils.ShiroUtils; |
|
|
|
import com.ruoyi.erp.domain.ErpMaterial; |
|
|
|
import com.ruoyi.erp.domain.ErpMaterialVo; |
|
|
|
import com.ruoyi.process.general.service.IProcessService; |
|
|
|
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; |
|
|
|
import com.ruoyi.system.domain.OutsourceMaterial; |
|
|
|
import com.ruoyi.system.domain.OutsourceOrder; |
|
|
|
import com.ruoyi.system.domain.OutsourceOrderDetail; |
|
|
|
import com.ruoyi.system.domain.Vo.OutsourceOrderVO; |
|
|
|
import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; |
|
|
|
import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO; |
|
|
|
import com.ruoyi.system.mapper.OutsourceOrderMapper; |
|
|
|
import com.ruoyi.system.mapper.SysUserMapper; |
|
|
|
import com.ruoyi.system.service.IOutsourceOrderService; |
|
|
|
import com.ruoyi.system.service.IOutsourcePlanService; |
|
|
|
import org.activiti.engine.RuntimeService; |
|
|
|
import org.activiti.engine.TaskService; |
|
|
|
import org.activiti.engine.impl.persistence.entity.TaskEntityImpl; |
|
|
|
import org.activiti.engine.runtime.ProcessInstance; |
|
|
|
import org.activiti.engine.task.Task; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import com.ruoyi.common.utils.StringUtils; |
|
|
@ -44,6 +48,9 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService |
|
|
|
@Autowired |
|
|
|
private OutsourceOrderMapper outsourceOrderMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IOutsourcePlanService outsourcePlanService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private RedisCache redisCache; |
|
|
|
|
|
|
@ -75,7 +82,13 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService |
|
|
|
{ |
|
|
|
OutsourceOrderVO outsourceOrderVO = outsourceOrderMapper.selectOutsourceOrderByOutsourceOrderId(outsourceOrderId); |
|
|
|
List<OutsourceOrderDetail> details = outsourceOrderMapper.selectOutsourceOrderDetailList(outsourceOrderVO.getOutsourceOrderNo()); |
|
|
|
outsourceOrderVO.setOutsourceOrderDetailList(details); |
|
|
|
if(StringUtils.isNotEmpty(details)){ |
|
|
|
outsourceOrderVO.setOutsourceOrderDetailList(details); |
|
|
|
for (OutsourceOrderDetail detail: details) { |
|
|
|
OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo()); |
|
|
|
detail.setOutsourceMaterial(material); |
|
|
|
} |
|
|
|
} |
|
|
|
return outsourceOrderVO; |
|
|
|
} |
|
|
|
|
|
|
@ -139,11 +152,12 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService |
|
|
|
} else { |
|
|
|
tempOutsourceOrderVO.setTaskName("未启动"); |
|
|
|
} |
|
|
|
tempOutsourceOrderVO.setTaskStatus(tempOutsourceOrderVO.getTaskName()); |
|
|
|
if(tempOutsourceOrderVO.getAuditStatus()!=null){ |
|
|
|
if(tempOutsourceOrderVO.getAuditStatus().equals("1")){ |
|
|
|
tempOutsourceOrderVO.setTaskName("审核通过"); |
|
|
|
tempOutsourceOrderVO.setTaskStatus("审核通过"); |
|
|
|
}else if(tempOutsourceOrderVO.getAuditStatus().equals("2")){ |
|
|
|
tempOutsourceOrderVO.setTaskName("审核拒绝"); |
|
|
|
tempOutsourceOrderVO.setTaskStatus("审核拒绝"); |
|
|
|
} |
|
|
|
} |
|
|
|
returnList.add(tempOutsourceOrderVO); |
|
|
@ -190,7 +204,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService |
|
|
|
// 保存
|
|
|
|
insertOutsourceOrder(outsourceOrderVO); |
|
|
|
// 启动流程
|
|
|
|
String applyTitle = user.getUserName()+"发起了委外报价提交审批-"+DateUtils.dateTimeNow(); |
|
|
|
String applyTitle = user.getUserName()+"发起了委外订单提交审批-"+DateUtils.dateTimeNow(); |
|
|
|
String instanceType = "submit"; |
|
|
|
ProcessInstance processInstance = startProcessInstance(applyTitle,instanceType,outsourceOrderVO, user); |
|
|
|
String processInstanceId = processInstance.getProcessInstanceId(); |
|
|
@ -207,30 +221,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 作废售后单 |
|
|
|
* |
|
|
|
* @param outsourceOrderId 售后单ID |
|
|
|
* @return 结果 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public int cancelOutsourceOrderById(Long outsourceOrderId) |
|
|
|
{ |
|
|
|
return outsourceOrderMapper.cancelOutsourceOrderById(outsourceOrderId); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 恢复售后单信息 |
|
|
|
* |
|
|
|
* @param outsourceOrderId 售后单ID |
|
|
|
* @return 结果 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public int restoreOutsourceOrderIdById(Long outsourceOrderId) |
|
|
|
{ |
|
|
|
return outsourceOrderMapper.restoreOutsourceOrderById(outsourceOrderId); |
|
|
|
} |
|
|
|
/** |
|
|
|
* 创建委外报价审核流程 |
|
|
|
* 创建委外订单审核流程 |
|
|
|
* @param applyTitle |
|
|
|
* @param instanceType |
|
|
|
* @param user |
|
|
@ -285,20 +276,30 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService |
|
|
|
return rows; |
|
|
|
} |
|
|
|
|
|
|
|
// 审批更新委外订单
|
|
|
|
@Override |
|
|
|
public int updateAuditOutsourceOrder(OutsourceOrderVO outsourceOrderVO) |
|
|
|
{ |
|
|
|
outsourceOrderVO.setUpdateTime(DateUtils.getNowDate()); |
|
|
|
String loginName = ShiroUtils.getLoginName(); |
|
|
|
outsourceOrderVO.setUpdateBy(loginName); |
|
|
|
int rows = outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); |
|
|
|
return rows; |
|
|
|
} |
|
|
|
// 根据订单号查询委外订单(用以委外领料或入库)
|
|
|
|
@Override |
|
|
|
public List<OutsourceOrderVO> selectOutsourceOrderByOutsourceOrderNo(String outsourceOrderNo) { |
|
|
|
List<OutsourceOrderVO> outsourceOrders = outsourceOrderMapper.selectOutsourceOrderByOutsourceOrderNo(outsourceOrderNo); |
|
|
|
for (OutsourceOrderVO order:outsourceOrders) { |
|
|
|
List<OutsourceOrderDetail> details= outsourceOrderMapper.selectOutsourceOrderDetailList(order.getOutsourceOrderNo()); |
|
|
|
for (OutsourceOrderDetail detail:details |
|
|
|
) { |
|
|
|
OutsourceMaterial material = outsourceOrderMapper.selectMaterialByCode(detail.getMaterialNo()); |
|
|
|
for (OutsourceOrderDetail detail:details) { |
|
|
|
OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo()); |
|
|
|
// 确保 material 的 OrderDetails 集合已初始化
|
|
|
|
if (material.getOrderDetails() == null) { |
|
|
|
material.setOrderDetails(new ArrayList<>()); |
|
|
|
} |
|
|
|
material.getOrderDetails().add(detail); |
|
|
|
|
|
|
|
material.setPlannedOutsourceAmount(detail.getPlannedOutsourceAmount()); |
|
|
|
// 确保 order 的 Materials 集合已初始化
|
|
|
|
if (order.getMaterials() == null) { |
|
|
|
order.setMaterials(new ArrayList<>()); |
|
|
@ -362,4 +363,81 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 委外订单作废审批流程
|
|
|
|
@Override |
|
|
|
public ProcessInstance cancelOutsourceOrderById(Long id) { |
|
|
|
OutsourceOrderVO outsourceOrderVO = outsourceOrderMapper.selectOutsourceOrderByOutsourceOrderId(id); |
|
|
|
// 审核状态-待审核
|
|
|
|
outsourceOrderVO.setAuditStatus("0"); |
|
|
|
SysUser user = ShiroUtils.getSysUser(); |
|
|
|
// 启动流程
|
|
|
|
String applyTitle = user.getUserName()+"发起了委外订单作废审批-"+DateUtils.dateTimeNow(); |
|
|
|
String instanceType = "cancel"; |
|
|
|
ProcessInstance processInstance = startProcessInstance(applyTitle,instanceType,outsourceOrderVO, user); |
|
|
|
String processInstanceId = processInstance.getProcessInstanceId(); |
|
|
|
// 作废实例id
|
|
|
|
outsourceOrderVO.setCancelInstanceId(processInstanceId); |
|
|
|
// 存在提交完就流程结束的情况
|
|
|
|
boolean processIsFinish = processService.judgeProcessIsFinish(processInstanceId); |
|
|
|
if(processIsFinish){ |
|
|
|
// 审核状态-审核通过
|
|
|
|
outsourceOrderVO.setAuditStatus("1"); |
|
|
|
// 使用状态-已作废
|
|
|
|
outsourceOrderVO.setUseStatus("2"); |
|
|
|
} |
|
|
|
outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); |
|
|
|
return processInstance; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public int cancelOutsourceOrderByObject(OutsourceOrderVO outsourceOrder) { |
|
|
|
OutsourceOrderVO outsourceOrderVO = outsourceOrderMapper.selectOutsourceOrderByOutsourceOrderId(outsourceOrder.getOutsourceOrderId()); |
|
|
|
// 审核状态-待审核
|
|
|
|
outsourceOrderVO.setAuditStatus("0"); |
|
|
|
SysUser user = ShiroUtils.getSysUser(); |
|
|
|
// 启动流程
|
|
|
|
String applyTitle = user.getUserName()+"发起了委外订单作废审批-"+DateUtils.dateTimeNow(); |
|
|
|
String instanceType = "cancel"; |
|
|
|
ProcessInstance processInstance = startProcessInstance(applyTitle,instanceType,outsourceOrderVO, user); |
|
|
|
String processInstanceId = processInstance.getProcessInstanceId(); |
|
|
|
// 作废实例id
|
|
|
|
outsourceOrderVO.setCancelInstanceId(processInstanceId); |
|
|
|
// 存在提交完就流程结束的情况
|
|
|
|
boolean processIsFinish = processService.judgeProcessIsFinish(processInstanceId); |
|
|
|
if(processIsFinish){ |
|
|
|
// 审核状态-审核通过
|
|
|
|
outsourceOrderVO.setAuditStatus("1"); |
|
|
|
// 使用状态-已作废
|
|
|
|
outsourceOrderVO.setUseStatus("2"); |
|
|
|
} |
|
|
|
outsourceOrderVO.setCancelRemark(outsourceOrder.getCancelRemark()); |
|
|
|
return outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); |
|
|
|
} |
|
|
|
|
|
|
|
// 委外订单恢复审批流程
|
|
|
|
@Override |
|
|
|
public ProcessInstance restoreOutsourceOrderById(Long id) { |
|
|
|
OutsourceOrderVO outsourceOrderVO = outsourceOrderMapper.selectOutsourceOrderByOutsourceOrderId(id); |
|
|
|
// 审核状态-待审核
|
|
|
|
outsourceOrderVO.setAuditStatus("0"); |
|
|
|
SysUser user = ShiroUtils.getSysUser(); |
|
|
|
// 启动流程
|
|
|
|
String applyTitle = user.getUserName()+"发起了委外订单恢复审批-"+DateUtils.dateTimeNow(); |
|
|
|
String instanceType = "restore"; |
|
|
|
ProcessInstance processInstance = startProcessInstance(applyTitle,instanceType,outsourceOrderVO, user); |
|
|
|
String processInstanceId = processInstance.getProcessInstanceId(); |
|
|
|
// 恢复实例id
|
|
|
|
outsourceOrderVO.setRestoreInstanceId(processInstanceId); |
|
|
|
// 存在提交完就流程结束的情况
|
|
|
|
boolean processIsFinish = processService.judgeProcessIsFinish(processInstanceId); |
|
|
|
if(processIsFinish){ |
|
|
|
// 审核状态-审核通过
|
|
|
|
outsourceOrderVO.setAuditStatus("1"); |
|
|
|
// 使用状态-是
|
|
|
|
outsourceOrderVO.setUseStatus("1"); |
|
|
|
} |
|
|
|
outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); |
|
|
|
return processInstance; |
|
|
|
} |
|
|
|
} |
|
|
|