|
|
|
|
@ -1,12 +1,13 @@ |
|
|
|
|
package org.springblade.wms.service.impl; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import jakarta.annotation.Resource; |
|
|
|
|
import org.springblade.core.log.exception.ServiceException; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.desk.common.feign.IMesApprovalRecordClient; |
|
|
|
|
import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; |
|
|
|
|
import org.springblade.system.feign.ISysClient; |
|
|
|
|
@ -15,6 +16,7 @@ import org.springblade.system.pojo.entity.User; |
|
|
|
|
import org.springblade.wms.excel.StOtherOutRecordExcel; |
|
|
|
|
import org.springblade.wms.mapper.StOtherOutRecordMapper; |
|
|
|
|
import org.springblade.wms.mapper.StReturnRecordMapper; |
|
|
|
|
import org.springblade.wms.mapper.StStockInoutRecordMapper; |
|
|
|
|
import org.springblade.wms.pojo.entity.StOtherOutRecord; |
|
|
|
|
import org.springblade.wms.pojo.entity.StRealtimeStock; |
|
|
|
|
import org.springblade.wms.pojo.entity.StReturnRecord; |
|
|
|
|
@ -48,6 +50,8 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl<StOtherOutRecor |
|
|
|
|
@Resource |
|
|
|
|
StReturnRecordMapper stReturnRecordMapper; |
|
|
|
|
@Resource |
|
|
|
|
StStockInoutRecordMapper stStockInoutRecordMapper; |
|
|
|
|
@Resource |
|
|
|
|
IMesApprovalRecordClient mesApprovalRecordClient; |
|
|
|
|
@Resource |
|
|
|
|
IUserClient userClient; |
|
|
|
|
@ -87,16 +91,22 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl<StOtherOutRecor |
|
|
|
|
approvalRecord.setBizId(stOtherOutRecord.getId()); |
|
|
|
|
approvalRecord.setBizType("报废审批"); |
|
|
|
|
approvalRecord.setContent("报废审批"); |
|
|
|
|
R<User> ruser = userClient.userInfoById(stOtherOutRecord.getCreateUser()); |
|
|
|
|
User user1 = ruser.getData(); |
|
|
|
|
approvalRecord.setCurrentRoleId(Long.valueOf(user1.getRoleId().split(",")[0])); |
|
|
|
|
R<String> roleName = sysClient.getRoleName(approvalRecord.getCurrentRoleId()); |
|
|
|
|
String roleNameData = roleName.getData(); |
|
|
|
|
approvalRecord.setCurrentRoleName(roleNameData); |
|
|
|
|
approvalRecord.setNextRoleName("热表-工艺员"); |
|
|
|
|
R<String> roleIdResp = sysClient.getRoleIds("000000", approvalRecord.getNextRoleName()); |
|
|
|
|
String roleId = roleIdResp.getData(); |
|
|
|
|
approvalRecord.setNextRoleId(Long.valueOf(roleId)); |
|
|
|
|
// R<User> ruser = userClient.userInfoById(stOtherOutRecord.getCreateUser());
|
|
|
|
|
// User user1 = ruser.getData();
|
|
|
|
|
// approvalRecord.setCurrentRoleId(Long.valueOf(user1.getRoleId().split(",")[0]));
|
|
|
|
|
// R<String> roleName = sysClient.getRoleName(approvalRecord.getCurrentRoleId());
|
|
|
|
|
// String roleNameData = roleName.getData();
|
|
|
|
|
// approvalRecord.setCurrentRoleName(roleNameData);
|
|
|
|
|
// approvalRecord.setNextRoleName("热表-工艺员");
|
|
|
|
|
// R<String> roleIdResp = sysClient.getRoleIds("000000", approvalRecord.getNextRoleName());
|
|
|
|
|
// String roleId = roleIdResp.getData();
|
|
|
|
|
// approvalRecord.setNextRoleId(Long.valueOf(roleId));
|
|
|
|
|
approvalRecord.setCurrentUserId(user.getUserId()); |
|
|
|
|
approvalRecord.setCurrentUserName(user.getNickName()); |
|
|
|
|
User ruser = userClient.userInfoById(stOtherOutRecord.getApprover()).getData(); |
|
|
|
|
approvalRecord.setNextUserId(stOtherOutRecord.getApprover()); |
|
|
|
|
approvalRecord.setNextUserName(ruser.getRealName()); |
|
|
|
|
|
|
|
|
|
mesApprovalRecordClient.save(approvalRecord); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
@ -105,9 +115,10 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl<StOtherOutRecor |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public void approvalRequest(Long id, Short approvalResult, BladeUser approver) { |
|
|
|
|
// 1. 校验工艺员权限
|
|
|
|
|
if (Objects.equals(approver.getRoleName(), "rb_craft")) { |
|
|
|
|
// 2. 查询数据
|
|
|
|
|
StOtherOutRecord stOtherOutRecord = this.getById(id); |
|
|
|
|
if (stOtherOutRecord.getApprover().equals(approver.getUserId())) { |
|
|
|
|
// 2. 查询数据
|
|
|
|
|
// StOtherOutRecord stOtherOutRecord = this.getById(id);
|
|
|
|
|
if (stOtherOutRecord == null) { |
|
|
|
|
throw new RuntimeException("数据不存在!"); |
|
|
|
|
} |
|
|
|
|
@ -119,14 +130,12 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl<StOtherOutRecor |
|
|
|
|
stOtherOutRecord.setApprovalStatus(approvalResult); |
|
|
|
|
this.updateById(stOtherOutRecord); |
|
|
|
|
|
|
|
|
|
R<String> roleIdResp = sysClient.getRoleIds("000000", "热表-工艺员"); |
|
|
|
|
String roleId = roleIdResp.getData(); |
|
|
|
|
|
|
|
|
|
MesApprovalRecordEntity updateRecord = new MesApprovalRecordEntity(); |
|
|
|
|
updateRecord.setBizId(id); |
|
|
|
|
updateRecord.setBizType("报废审批"); |
|
|
|
|
updateRecord.setOpinion(""); |
|
|
|
|
updateRecord.setNextRoleId(Long.valueOf(roleId)); |
|
|
|
|
// updateRecord.setNextRoleId(Long.valueOf(roleId));
|
|
|
|
|
updateRecord.setNextUserId(stOtherOutRecord.getApprover()); |
|
|
|
|
updateRecord.setStatus(Integer.valueOf(approvalResult)); |
|
|
|
|
mesApprovalRecordClient.update(updateRecord); |
|
|
|
|
|
|
|
|
|
@ -237,6 +246,15 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl<StOtherOutRecor |
|
|
|
|
Map<Long, StRealtimeStock> stockMap = stockList.stream() |
|
|
|
|
.collect(Collectors.toMap(StRealtimeStock::getId, Function.identity())); |
|
|
|
|
|
|
|
|
|
String datePrefix = DateUtil.format(new Date(), "yyyyMMdd"); |
|
|
|
|
// 2. 当天最大序号
|
|
|
|
|
String maxCode = stStockInoutRecordMapper.getMaxCheckCode(datePrefix); |
|
|
|
|
int lastNum = 0; |
|
|
|
|
if (StrUtil.isNotBlank(maxCode)) { |
|
|
|
|
String number = maxCode.substring(datePrefix.length()); |
|
|
|
|
lastNum = Integer.parseInt(number); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ========== 1.3 组装所有商品明细 ==========
|
|
|
|
|
for (StRealtimeStock stock : outList) { |
|
|
|
|
StRealtimeStock entity = stockMap.get(stock.getId()); |
|
|
|
|
@ -245,10 +263,15 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl<StOtherOutRecor |
|
|
|
|
} |
|
|
|
|
StStockInoutRecord detail = new StStockInoutRecord(); |
|
|
|
|
// 明细复用主单公共属性
|
|
|
|
|
detail.setSirCode(stStockInoutRecordService.generateCode()); // 单据编码
|
|
|
|
|
lastNum++; |
|
|
|
|
String sirCode = datePrefix + StrUtil.padPre(String.valueOf(lastNum), 4, '0'); |
|
|
|
|
detail.setSirCode(sirCode); |
|
|
|
|
// detail.setSirCode(stStockInoutRecordService.generateCode()); // 单据编码
|
|
|
|
|
detail.setInOutDate(mainInout.getInOutDate()); |
|
|
|
|
detail.setInOutSource(mainInout.getInOutSource()); |
|
|
|
|
// detail.setShId(entity.getShId());
|
|
|
|
|
if(stOtherOutRecord.getShId() == null) { |
|
|
|
|
detail.setShId(entity.getShId()); |
|
|
|
|
} |
|
|
|
|
detail.setShId(mainInout.getShId()); |
|
|
|
|
detail.setDeptId(mainInout.getDeptId()); |
|
|
|
|
detail.setCreateUser(mainInout.getCreateUser()); |
|
|
|
|
@ -282,6 +305,9 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl<StOtherOutRecor |
|
|
|
|
|
|
|
|
|
// 绑定当前明细的ID和出库类型
|
|
|
|
|
newOutRecord.setSirId(detail.getId()); |
|
|
|
|
if (stOtherOutRecord.getShId() == null) { |
|
|
|
|
newOutRecord.setShId(detail.getShId()); |
|
|
|
|
} |
|
|
|
|
newOutRecord.setOutType(stOtherOutRecord.getOutType()); |
|
|
|
|
newOutRecord.setBfType(stOtherOutRecord.getBfType()); |
|
|
|
|
newOutRecord.setBfCode(stOtherOutRecord.getBfCode()); |
|
|
|
|
|