仓库管理修改

liweidong
wusiyu 1 week ago
parent 03e02abd2a
commit 3db941ae6c
  1. 47
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StMoldApplyFor.java
  2. 25
      blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java
  3. 4
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java
  4. 116
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java

@ -1,5 +1,6 @@
package org.springblade.wms.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@ -125,12 +126,34 @@ public class StMoldApplyFor extends TenantEntity {
@Schema(description = "紧急状态")
private String urgentType;
/**
* 审批人
*/
@TableField(value = "APPROVAL_MAN")
private Long approvalMan;
/**
* 审批时间
*/
@TableField(value = "APPROVAL_TIME")
private Date approvalTime;
/**
* 审批状态
*/
@TableField(value = "APPROVAL_STATUS")
private Short approvalStatus;
/**
* 新建
*/
public static Short MAF_STATUS_NEW = 1;
public static Short MAF_STATUS_NEW = 0;
/**
* 已申请
* 已确认
*/
public static Short MAF_STATUS_CONFIRMED = 1;
/**
* 已审批
*/
public static Short MAF_STATUS_HAVE = 2;
/**
@ -142,5 +165,25 @@ public class StMoldApplyFor extends TenantEntity {
*/
public static Short MAF_STATUS_ERP_DEL = 4;
/**
* 初始状态(未发送审批)
*/
public static final short APPROVAL_STATUS_NEW = -1;
/**
* 审批中(审批中)
*/
public static final short APPROVAL_STATUS_CHECKING = 0;
/**
* 审批完毕(审批通过)
*/
public static final short APPROVAL_STATUS_CHECKED = 1;
/**
* 审批未通过
*/
public static final short APPROVAL_STATUS_UNPASS = 2;
}

@ -22,6 +22,7 @@ import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.wms.excel.StMoldApplyForExcel;
import org.springblade.wms.pojo.dto.StMoldApplyForDTO;
import org.springblade.wms.pojo.entity.StBuyOrder;
import org.springblade.wms.pojo.entity.StMoldApplyFor;
import org.springblade.wms.pojo.vo.StMoldApplyForVO;
import org.springblade.wms.service.IStMoldApplyForService;
@ -137,13 +138,35 @@ public class StMoldApplyForController extends BladeController {
return R.status(stMoldApplyForService.delete(Func.toLongList(ids)));
}
/**
* 工装计划申请表
*/
@PostMapping("/renderApproval")
@ApiOperationSupport(order = 5)
@ApiLog("工装计划申请表 ")
@Operation(summary = "修改", description = "传入stMoldApplyFor")
public R renderApproval(@Valid @RequestBody List<StMoldApplyFor> list) {
return R.status(stMoldApplyForService.renderApproval(list));
}
/**
* 采购申请单 审批
*/
@PostMapping("/approval/operate")
@ApiOperationSupport(order = 8)
@ApiLog("采购申请单 审批")
@Operation(summary = "审批", description = "传入ids")
public R<String> approvalOrder( @RequestParam Long id, @RequestParam Short approvalResult) {
stMoldApplyForService.approvalOrder(id, approvalResult, AuthUtil.getUser());
return R.success("审批操作成功");
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-stMoldApplyFor")
@ApiOperationSupport(order = 8)
@ApiOperationSupport(order = 9)
@ApiLog("导出数据")
@Operation(summary = "导出数据", description = "传入stMoldApplyFor")
public void exportStMoldApplyFor(@Parameter(hidden = true) @RequestParam Map<String, Object> stMoldApplyFor, BladeUser bladeUser, HttpServletResponse response) {

@ -41,5 +41,9 @@ public interface IStMoldApplyForService extends BaseService<StMoldApplyFor> {
void addOrEditProcess(List<StMoldApplyFor> list, List<Long> deleteIds, BladeUser user);
boolean delete(List<Long> deleteIds);
void approvalOrder(Long id, Short approvalResult, BladeUser user);
boolean renderApproval(List<StMoldApplyFor> list);
}

@ -9,7 +9,10 @@ import org.springblade.common.exception.BusinessException;
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.erpdata.feign.IErpDataWmsClient;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springblade.wms.excel.StMoldApplyForExcel;
@ -37,7 +40,11 @@ public class StMoldApplyForServiceImpl extends BaseServiceImpl<StMoldApplyForMap
@Resource
IUserClient userClient;
@Resource
ISysClient sysClient;
@Resource
IErpDataWmsClient erpDataWmsClient;
@Resource
IMesApprovalRecordClient mesApprovalRecordClient;
@Override
public IPage<StMoldApplyForVO> selectStMoldApplyForPage(IPage<StMoldApplyForVO> page, StMoldApplyForVO stMoldApplyFor) {
@ -55,29 +62,14 @@ public class StMoldApplyForServiceImpl extends BaseServiceImpl<StMoldApplyForMap
plan.setCreateUser(user.getUserId());
plan.setCreateTime(new Date());
R<User> ruser = userClient.userInfoById(plan.getKeeper());
User keeper = ruser.getData();
String erpWoCode = null;
// 1. 调 ERP
try {
erpWoCode = erpDataWmsClient.createMoldPlan(
plan.getPartCode(), plan.getMoCode(), plan.getPlanType(),
plan.getQuantity(), plan.getNeedDate(), plan.getQuaLevel(),
keeper.getAccount(), user.getAccount(),
StrUtil.blankToDefault(plan.getMemo(), ""),
plan.getUrgentType(), StrUtil.nullToEmpty(plan.getErpWoCode())).getData();
} catch (BusinessException e) {
throw new RuntimeException("创建模具计划失败:" + e.getMessage());
}
// 2. 本地落库
if (plan.getId() != null) { // 修改
plan.setErpWoCode(erpWoCode);
// plan.setErpWoCode(erpWoCode);
this.updateById(plan);
} else { // 新增
plan.setErpWoCode(erpWoCode);
// plan.setErpWoCode(erpWoCode);
plan.setMafType((short) 2);
plan.setMafStatus(StMoldApplyFor.MAF_STATUS_HAVE);
plan.setMafStatus(StMoldApplyFor.MAF_STATUS_NEW);
this.save(plan);
}
}
@ -107,22 +99,92 @@ public class StMoldApplyForServiceImpl extends BaseServiceImpl<StMoldApplyForMap
if (CollUtil.isNotEmpty(deleteIds)) {
for (Long id : deleteIds) {
StMoldApplyFor plan = this.getById(id);
if (plan == null) continue;
if (!StMoldApplyFor.MAF_STATUS_OK.equals(plan.getMafStatus())) {
try {
erpDataWmsClient.deleteMoldPlan(plan.getErpWoCode());
} catch (BusinessException e) {
throw new RuntimeException("删除模具计划失败:" + e.getMessage());
}
if (plan.getMafStatus() == 2) {
if (plan == null) continue;
if (!StMoldApplyFor.MAF_STATUS_OK.equals(plan.getMafStatus())) {
try {
erpDataWmsClient.deleteMoldPlan(plan.getErpWoCode());
} catch (BusinessException e) {
throw new RuntimeException("删除模具计划失败:" + e.getMessage());
}
plan.setMafStatus(StMoldApplyFor.MAF_STATUS_ERP_DEL);
this.updateById(plan);
plan.setMafStatus(StMoldApplyFor.MAF_STATUS_ERP_DEL);
this.updateById(plan);
}
}
}
}
return this.deleteLogic(deleteIds);
}
@Override
public boolean renderApproval(List<StMoldApplyFor> list){
for (StMoldApplyFor plan : list){
plan.setMafStatus(StMoldApplyFor.MAF_STATUS_CONFIRMED);
MesApprovalRecordEntity approvalRecord = new MesApprovalRecordEntity();
approvalRecord.setBizId(plan.getId());
approvalRecord.setBizType("工装计划申报审批");
approvalRecord.setContent("工装计划申报审批");
R<User> ruse = userClient.userInfoById(plan.getCreateUser());
User user1 = ruse.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("厂长,副厂长");
//租户ID 000000
R<String> roleIdResp = sysClient.getRoleIds("000000", approvalRecord.getNextRoleName());
String roleId = roleIdResp.getData();
approvalRecord.setNextRoleId(Long.valueOf(roleId));
mesApprovalRecordClient.save(approvalRecord);
}
return this.updateBatchById(list);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void approvalOrder(Long orderId, Short approvalResult, BladeUser approver) {
StMoldApplyFor plan = baseMapper.selectById(orderId);
if (plan == null) {
throw new RuntimeException("工装申报不存在!");
}
if (StMoldApplyFor.APPROVAL_STATUS_CHECKED == plan.getApprovalStatus()) {
throw new RuntimeException("该工装申报单已审批通过,无需重复审批!");
}
plan.setApprovalStatus(approvalResult);
plan.setApprovalMan(approver.getUserId());
plan.setApprovalTime(new Date());
baseMapper.updateById(plan);
if (plan.getApprovalStatus() == 1) {
R<User> ruser = userClient.userInfoById(plan.getKeeper());
User keeper = ruser.getData();
R<User> ruse = userClient.userInfoById(plan.getCreateUser());
User user = ruse.getData();
String erpWoCode = null;
// 调 ERP
try {
erpWoCode = erpDataWmsClient.createMoldPlan(
plan.getPartCode(), plan.getMoCode(), plan.getPlanType(),
plan.getQuantity(), plan.getNeedDate(), plan.getQuaLevel(),
keeper.getAccount(), user.getAccount(),
StrUtil.blankToDefault(plan.getMemo(), ""),
plan.getUrgentType(), StrUtil.nullToEmpty(plan.getErpWoCode())).getData();
} catch (BusinessException e) {
throw new RuntimeException("创建模具计划失败:" + e.getMessage());
}
plan.setErpWoCode(erpWoCode);
plan.setMafStatus(StMoldApplyFor.MAF_STATUS_HAVE);
baseMapper.updateById(plan);
}
}
@Override
public List<StMoldApplyForExcel> exportStMoldApplyFor(Wrapper<StMoldApplyFor> queryWrapper) {
List<StMoldApplyForExcel> stMoldApplyForList = baseMapper.exportStMoldApplyFor(queryWrapper);

Loading…
Cancel
Save