diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StMoldApplyFor.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StMoldApplyFor.java index 7f0ca9812..76f9c2f67 100644 --- a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StMoldApplyFor.java +++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StMoldApplyFor.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; + } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java index c42e56a8a..d61c358a9 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java @@ -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 list) { + return R.status(stMoldApplyForService.renderApproval(list)); + } + + /** + * 采购申请单 审批 + */ + @PostMapping("/approval/operate") + @ApiOperationSupport(order = 8) + @ApiLog("采购申请单 审批") + @Operation(summary = "审批", description = "传入ids") + public R 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 stMoldApplyFor, BladeUser bladeUser, HttpServletResponse response) { diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java index 69f656e02..5e4b31ee0 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java @@ -41,5 +41,9 @@ public interface IStMoldApplyForService extends BaseService { void addOrEditProcess(List list, List deleteIds, BladeUser user); boolean delete(List deleteIds); + + void approvalOrder(Long id, Short approvalResult, BladeUser user); + + boolean renderApproval(List list); } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java index d3e5f08a6..c346bd2ea 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java @@ -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 selectStMoldApplyForPage(IPage page, StMoldApplyForVO stMoldApplyFor) { @@ -55,29 +62,14 @@ public class StMoldApplyForServiceImpl extends BaseServiceImpl 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 list){ + for (StMoldApplyFor plan : list){ + plan.setMafStatus(StMoldApplyFor.MAF_STATUS_CONFIRMED); + + MesApprovalRecordEntity approvalRecord = new MesApprovalRecordEntity(); + approvalRecord.setBizId(plan.getId()); + approvalRecord.setBizType("工装计划申报审批"); + approvalRecord.setContent("工装计划申报审批"); + R ruse = userClient.userInfoById(plan.getCreateUser()); + User user1 = ruse.getData(); + approvalRecord.setCurrentRoleId(Long.valueOf(user1.getRoleId().split(",")[0])); + R roleName = sysClient.getRoleName(approvalRecord.getCurrentRoleId()); + String roleNameData = roleName.getData(); + approvalRecord.setCurrentRoleName(roleNameData); + approvalRecord.setNextRoleName("厂长,副厂长"); + //租户ID 000000 + R 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 ruser = userClient.userInfoById(plan.getKeeper()); + User keeper = ruser.getData(); + + R 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 exportStMoldApplyFor(Wrapper queryWrapper) { List stMoldApplyForList = baseMapper.exportStMoldApplyFor(queryWrapper);