车间工作台接口

liweidong
李涛 2 months ago
parent a323d9d5ea
commit e318154b14
  1. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IUserRightService.java
  2. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/UserRightServiceImpl.java
  3. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java
  4. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java
  5. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java
  6. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java
  7. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml
  8. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java
  9. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java
  10. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java
  11. 99
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java
  12. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java

@ -41,4 +41,11 @@ public interface IUserRightService extends BaseService<UserRight> {
* @param vo
*/
void setVOValue(UserRightVO vo);
/**
* 获取团队id
* @param userId
* @return
*/
List<Long> getTeamId(Long userId);
}

@ -5,6 +5,8 @@ package org.springblade.desk.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -12,6 +14,7 @@ import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.constant.UserRightConst;
import org.springblade.desk.basic.excel.UserRightExcel;
import org.springblade.desk.basic.mapper.UserRightMapper;
import org.springblade.desk.basic.pojo.entity.UserRight;
@ -66,4 +69,13 @@ public class UserRightServiceImpl extends BaseServiceImpl<UserRightMapper, UserR
}
}
}
@Override
public List<Long> getTeamId(Long userId) {
List<UserRight> bsTeamSet = this.list(Wrappers.lambdaQuery(UserRight.class).eq(UserRight::getUserId, userId).eq(UserRight::getUrType, UserRightConst.UR_TYPE_TEAM_SET));
if (CollectionUtils.isEmpty(bsTeamSet)) {
return null;
}
return bsTeamSet.stream().map(UserRight::getTheId).toList();
}
}

@ -67,4 +67,12 @@ public interface IRackSetService extends BaseService<RackSetEntity> {
* @return
*/
Boolean bind(@NotEmpty List<Long> ids, Integer deviceId);
/**
* 根据挂具编号查询挂具信息
*
* @param rsCode
* @return
*/
RackSetEntity getBsRackSetByCode(String rsCode);
}

@ -26,6 +26,7 @@
package org.springblade.desk.device.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springblade.desk.device.mapper.RackSetMapper;
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity;
@ -91,4 +92,13 @@ public class RackSetServiceImpl extends BaseServiceImpl<RackSetMapper, RackSetEn
return this.updateBatchById(rackSetEntityList);
}
@Override
public RackSetEntity getBsRackSetByCode(String rsCode) {
List<RackSetEntity> rackSets = this.list(Wrappers.lambdaQuery(RackSetEntity.class).eq(RackSetEntity::getRsCode, rsCode));
if (CollectionUtils.isEmpty(rackSets)) {
return null;
}
return rackSets.get(0);
}
}

@ -11,6 +11,7 @@ import org.springblade.desk.device.pojo.entity.RackSetEntity;
import org.springblade.desk.device.pojo.vo.RackSetVO;
import org.springblade.desk.device.wrapper.RackSetWrapper;
import org.springblade.desk.produce.pojo.dto.TurnTypeDTO;
import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO;
import org.springblade.desk.produce.service.IPdaLoadService;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springframework.web.bind.annotation.*;
@ -30,18 +31,21 @@ import org.springframework.web.bind.annotation.*;
public class PdaLoadController {
private final IPdaLoadService pdaLoadService;
@GetMapping(value = "/loadBindData/{cardNo}")
@ApiOperationSupport(order = 1)
@Operation(summary = "加载绑定需要的流程卡数据", description = "传入cardNo")
public R loadBindData(@PathVariable String cardNo) {
return R.data(pdaLoadService.loadBindData(AuthUtil.getUser(), cardNo));
return R.data(pdaLoadService.loadBindData(AuthUtil.getUserId(), cardNo));
}
@GetMapping(value = "getBsFeiBaSetByCode/{rsCode}")
@ApiOperationSupport(order = 2)
@Operation(summary = "根据挂具编码查询数据", description = "传入rsCode")
public R getBsFeiBaSetByCode(@PathVariable String rsCode) {
return R.data(pdaLoadService.getBsRackSetByCode(rsCode));
}
@GetMapping(value = "/getBsFeiBaSetByCodeUn/{fsCode}")
@ApiOperationSupport(order = 3)
@Operation(summary = "根据挂具编码查询数据(解绑)", description = "传入fsCode")
@ -55,16 +59,18 @@ public class PdaLoadController {
public R getEcByDeviceCode(@PathVariable String deviceCode) {
return R.data(pdaLoadService.getEcByCode(deviceCode));
}
@GetMapping(value = "/loadSubOrder/{cardNo}")
@ApiOperationSupport(order = 5)
@Operation(summary = "加载子件订单入库数据", description = "传入cardNo")
public R loadSubOrder(@PathVariable String cardNo) {
return R.data(pdaLoadService.loadSubOrder(cardNo));
}
@GetMapping(value = "/loadProTest/{cardNo}")
@ApiOperationSupport(order = 6)
@Operation(summary = "加载当前工序检验数据", description = "传入cardNo")
public R loadProTest(@PathVariable String cardNo) {
public R<PdaProRelevantVO> loadProTest(@PathVariable String cardNo) {
return R.data(pdaLoadService.loadProTestWorkPlan(cardNo));
}
@ -74,6 +80,7 @@ public class PdaLoadController {
public R loadPrMacToolUseByMtnCode(@PathVariable String mtnCode) {
return R.data(pdaLoadService.loadPrMacToolUseByMtnCode(mtnCode));
}
@GetMapping(value = "/deletedProduceRun/{mtnCode}")
@ApiOperationSupport(order = 8)
@Operation(summary = "根据同槽号删除信息", description = "传入mtnCode")

@ -32,18 +32,21 @@ public class PdaSaveController {
private final IPdaSaveService pdaSaveService;
private final IBasicClazzService basicClazzService;
@Operation(summary = "流程卡与挂具绑定")
@PostMapping("/gjBindingCrad")
public R gjBindingCrad(@RequestParam(value = "rsId") Long rsId, @RequestParam(value = "planListIds") String planListIds) {
pdaSaveService.bindingCard(rsId, null, null, planListIds);
return R.success();
}
@Operation(summary = "挂具与飞靶绑定")
@PostMapping("/gjBindingFb")
public R gjBindingFb(@RequestParam(value = "fsId") Long fsId, @RequestParam(value = "rsListIds") String rsListIds) {
pdaSaveService.binding(fsId, null, null, null, rsListIds);
return R.success();
}
@Operation(summary = "飞靶与设备绑定")
@PostMapping("/fbBindingEc")
public R fbBindingEc(@RequestParam(value = "fsId") Long fsId, @RequestParam(value = "ecId") Long ecId,
@ -70,41 +73,48 @@ public class PdaSaveController {
}
return R.success();
}
@Operation(summary = "流程卡与飞靶绑定")
@PostMapping("/fbBindingCrad")
public R fbBindingCrad(@RequestParam(value = "fsId") Long fsId, @RequestParam(value = "planListIds") String planListIds) {
pdaSaveService.bindingCard(null, fsId, null, planListIds);
return R.success();
}
@Operation(summary = "流程卡与设备绑定")
@PostMapping("/ecBindingCrad")
public R ecBindingCrad(@RequestParam(value = "ecId") Long ecId, @RequestParam(value = "planListIds") String planListIds) {
pdaSaveService.bindingCard(null, null, ecId, planListIds);
return R.success();
}
@Operation(summary = "挂具与设备绑定")
@PostMapping("/gjBindingEc")
public R gjBindingEc(@RequestParam(value = "ecId") Long ecId, @RequestParam(value = "rsListIds") String rsListIds) {
pdaSaveService.binding(null, ecId, null, null, rsListIds);
return R.success();
}
@Operation(summary = "烧结流程卡与设备绑定")
@PostMapping("/sjEcBindingCard")
public R sjEcBindingCard(@RequestBody SjEcBingCardVo sjEcBingCardVo) {
pdaSaveService.sjBindingCard(sjEcBingCardVo);
return R.success();
}
@Operation(summary = "解绑")
@PostMapping("/unBind")
public R unBind(@RequestBody UnBingVo unBingVo) {
pdaSaveService.unBind(unBingVo);
return R.success();
}
@Operation(summary = "获取烧结未解绑的绑定记录")
@PostMapping("/getUnbindByCard")
public R getUnbindByCard(@RequestParam(value = "cardNo") String cardNo) {
return R.data(pdaSaveService.getUnbindByCard(cardNo));
}
@Operation(summary = "烧结设备解绑解绑")
@PostMapping("/sjDeviceUnBind")
public R sjDeviceUnBind(@RequestBody UnBingDeviceVo unBingDeviceVo) {

@ -58,7 +58,7 @@
LEFT JOIN MES_WORK_ORDER wo ON wp.WO_ID = wo.ID
LEFT JOIN MES_YIELD_ORDER yo ON wo.YO_ID = yo.ID
<where>
mr.IS_DELETED = 0 and a.worker = #{mesMakeRec.worker}
mr.IS_DELETED = 0 and mr.worker = #{mesMakeRec.worker}
<if test="mesMakeRec.woCode != null and mesMakeRec.woCode != ''">
AND wo.WO_CODE LIKE concat(concat('%', #{mesMakeRec.worker}),'%')
</if>

@ -24,11 +24,11 @@ public interface IPdaLoadService extends BaseService<WorkPlan> {
* <p>方法名: loadBindData </p>
* <p>方法描述: 加载绑定数据 </p>
*
* @param user 用户
* @param userId 用户id
* @param cardNo 卡号
* @return org.springblade.desk.produce.pojo.entity.WorkPlan
*/
WorkPlan loadBindData(BladeUser user, String cardNo);
WorkPlan loadBindData(Long userId, String cardNo);
/**
* <p>方法名: getBsRackSetByCode </p>
* <p>方法描述: 根据挂具编码查询数据 </p>
@ -62,7 +62,7 @@ public interface IPdaLoadService extends BaseService<WorkPlan> {
void deletedProduceRun(String mtnCode);
public WorkOrder checkPrWorkOrder(String cardNo);
WorkOrder checkPrWorkOrder(String cardNo);
void handleBaoZhuangWorkPlan(List<WorkPlan> wpList, YieldOrder yo);

@ -34,7 +34,6 @@ public interface IPdaSaveService extends BaseService<WorkPlan> {
* @param ecId 设备id
* @param unFsBool 是否解绑
* @param rsListIds 绑定数据
* @param listIds
*/
void binding(Long rsId, Long ecId, Boolean unFsBool,String hangNum,String rsListIds);
/**

@ -128,14 +128,6 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
}
}
private List<Long> getTeamId(Long userId) {
List<UserRight> bsTeamSet = userRightService.list(Wrappers.lambdaQuery(UserRight.class).eq(UserRight::getUserId, userId).eq(UserRight::getUrType, "bs_team_set"));
if (CollectionUtils.isEmpty(bsTeamSet)) {
return null;
}
return bsTeamSet.stream().map(UserRight::getTheId).toList();
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveMakeRec(MakeRecDTO makeRecDTO) {
@ -432,8 +424,11 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
@Override
public IPage<MesMakeRecVO> selectMesMakeRecPage(IPage<MesMakeRecVO> page, MesMakeRecVO mesMakeRec) {
IPage<MesMakeRecVO> mesMakeRecVOIPage = page.setRecords(baseMapper.selectMesMakeRecPage(page, mesMakeRec));
List<MesMakeRecVO> records = mesMakeRecVOIPage.getRecords();
if (mesMakeRec.getWorker() == null) {
mesMakeRec.setWorker(AuthUtil.getUserId());
}
IPage<MesMakeRecVO> mesMakeRecVoiPage = page.setRecords(baseMapper.selectMesMakeRecPage(page, mesMakeRec));
List<MesMakeRecVO> records = mesMakeRecVoiPage.getRecords();
if (CollectionUtils.isNotEmpty(records)) {
List<Long> ppsIds = new ArrayList<>();
List<Long> makeTeams = new ArrayList<>();
@ -470,9 +465,9 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
record.setNextPpsName(processSetMap.get(record.getNextPpsId()));
record.setNextMakeTeamName(teamMap.get(record.getNextMakeTeam()));
}
mesMakeRecVOIPage.setRecords(records);
mesMakeRecVoiPage.setRecords(records);
}
return mesMakeRecVOIPage;
return mesMakeRecVoiPage;
}
@Override

@ -15,7 +15,11 @@ import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.desk.basic.mapper.CraftAbilityMapper;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.service.IRelTeamSetUserService;
import org.springblade.desk.basic.service.ITeamSetService;
import org.springblade.desk.basic.service.IUserRightService;
import org.springblade.desk.dashboard.pojo.entity.*;
import org.springblade.desk.dashboard.service.*;
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity;
@ -101,16 +105,23 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
private final WorkPlanMapper workPlanMapper;
private final IWorkPlanService workPlanService;
private final IUserRightService userRightService;
@Override
public WorkPlan loadBindData(BladeUser user, String cardNo) {
WorkPlan prWorkPlan = this.getCurrentWorkPlan(cardNo, user, false, false);
public WorkPlan loadBindData(Long userId, String cardNo) {
WorkPlan prWorkPlan = this.getCurrentWorkPlan(cardNo, userId, false, false);
return prWorkPlan;
}
@Override
public RackSetEntity getBsRackSetByCode(String rsCode) {
return rackSetService.getOne(Wrappers.lambdaQuery(RackSetEntity.class)
.eq(RackSetEntity::getRsCode, rsCode));
RackSetEntity rackSet = rackSetService.getBsRackSetByCode(rsCode);
if (rackSet == null) {
throw new ServiceException("此挂具不存在!");
}
return rackSet;
}
@Override
@ -172,7 +183,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
.woCode(prWorkOrder.getWoCode())
.batchNo(prWorkOrder.getBatchNo())
.partCode(prWorkOrder.getPartCode())
.partName(part.getPartName())
.partName(part != null ? part.getPartName() : null)
.frontOrders(frontWorkPlan.getOrders())
.frontPpsName(processSetMap.get(frontWorkPlan.getPpsId()).getName())
.wpId(prWorkPlan.getId())
@ -206,42 +217,36 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
}
private WorkPlan getCurrentWorkPlan(String cardNo, BladeUser user, boolean checkCurrentProcess, boolean checkAfterPlating) {
private WorkPlan getCurrentWorkPlan(String cardNo, Long userId, boolean checkCurrentProcess, boolean checkAfterPlating) {
//获取并验证车间订单
WorkOrder prWorkOrder = this.checkPrWorkOrder(cardNo);
//获取当前登录人班组
List<Long> tsIds = relTeamSetUserService.
list(Wrappers.lambdaQuery(RelTeamSetUser.class)
.eq(RelTeamSetUser::getUserId, user.getUserId()))
.stream().map(RelTeamSetUser::getUserId).collect(Collectors.toList());
List<Long> tsIds = userRightService.getTeamId(userId);
//获取作业计划
WorkPlan prWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class)
.eq(WorkPlan::getId, prWorkOrder.getWpId()));
WorkPlan workPlan = workPlanService.getById(prWorkOrder.getWpId());
//获取当前工序的下序
WorkPlan nextPrWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class)
.eq(WorkPlan::getId, prWorkPlan.getNextWpId()));
WorkPlan nextPrWorkPlan = workPlanService.getById(workPlan.getNextWpId());
//获取当前工序的上序
WorkPlan frontPrWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class)
.eq(WorkPlan::getId, prWorkPlan.getFrontWpId()));
WorkPlan frontPrWorkPlan = workPlanService.getById(workPlan.getFrontWpId());
//如果是最后一道工序(当前序下序为空或者下序的下序为空)
if (nextPrWorkPlan == null || nextPrWorkPlan.getNextWpId() == null) {
//如果是镀后入库则不验证
if (checkAfterPlating) {
throw new ServiceException("pda.nextWorkPlan.noNext");
throw new ServiceException("工序已是最后一道!");
}
}
//验证作业中心
//this.checkWorkCenter(checkCurrentProcess, frontPrWorkPlan, prWorkPlan, nextPrWorkPlan, tsIds, checkAfterPlating);
this.checkWorkCenter(checkCurrentProcess, frontPrWorkPlan, workPlan, nextPrWorkPlan, tsIds, checkAfterPlating);
//状态是false或者上序为空,并且当前序(首道)状态未未开工时,获取当前序;
if (!checkCurrentProcess || (frontPrWorkPlan == null && prWorkPlan.getStatus().equals(WorkPlan.STATUS_NO_START))) {
return prWorkPlan;
if (!checkCurrentProcess || (frontPrWorkPlan == null && workPlan.getStatus().equals(WorkPlan.STATUS_NO_START))) {
return workPlan;
}
//如果是镀后入库则不验证
if (checkAfterPlating) {
if (prWorkPlan != null) {
if (workPlan != null) {
//验证上道工序是否报工完成
if (!WorkPlan.STATUS_WORK_OK.equals(prWorkPlan.getStatus())) {
throw new ServiceException("product.frontWpNotWork");
if (!WorkPlan.STATUS_WORK_OK.equals(workPlan.getStatus())) {
throw new ServiceException("上序未报工完成,请联系相关人员处理!");
}
}
}
@ -249,9 +254,47 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
private void checkWorkCenter(boolean checkCurrentProcess, WorkPlan frontPrWorkPlan, WorkPlan prWorkPlan, WorkPlan nextPrWorkPlan, List<Long> tsIds, boolean checkAfterPlating) {
// todo 等待关联表开发完成
// WorkCenter bsWorkCenter = null;
// BsTeamSetEntity teamSet;
// if (!checkCurrentProcess || (frontPrWorkPlan == null && prWorkPlan.getStatus().equals(WorkPlan.STATUS_NO_START)) || nextPrWorkPlan == null) {
// if (prWorkPlan.getMakeTeam() == null) {
// throw new ServiceException("当前工序无加工班组");
// }
//
// // 根据当前工序班组查询作业中心
// teamSet = bsTeamSetService.getById(prWorkPlan.getMakeTeam());
// if (teamSet != null) {
// bsWorkCenter = centerTeam.getBsWorkCenter();
// }
// // 验证当前登录人和当前工序的班组是否一致
// this.checkMakeTeamOne(prWorkPlan, tsIds);
// if (checkAfterPlating) {
// prWorkPlanService.verifyMakeUnit(prWorkPlan);
// }
// } else {
//
// if (nextPrWorkPlan.getMakeTeam() == null) {
// throw new ServiceException("当前工序无加工班组");
// }
//
// // 根据当前工序班组查询作业中心
// centerTeam = bsCenterTeamService.getByTsId(nextPrWorkPlan.getMakeTeam().getTsId());
// if (centerTeam != null) {
// bsWorkCenter = centerTeam.getBsWorkCenter();
// }
// //验证当前登录人和当前工序的班组是否一致
// this.checkMakeTeamOne(nextPrWorkPlan, tsIds);
// if (checkAfterPlating) {
// prWorkPlanService.verifyMakeUnit(nextPrWorkPlan);
// }
// }
// if (bsWorkCenter == null) {
// throw new ServiceException("当前工序无作业中心!");
// }
}
@Override
public WorkOrder checkPrWorkOrder(String cardNo) {
WorkOrder prWorkOrder = this.checkWo(cardNo);
//车间订单状态小于已下达并且大于加工中的情况下,不允许下序接收
@ -307,10 +350,10 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
private WorkOrder checkWo(String cardNo) {
WorkOrder prWorkOrder = workOrderService.getOne(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getCardNo, cardNo));
if (prWorkOrder == null) {
throw new ServiceException("pda.prWorkOrder.absent" + null);
WorkOrder workOrder = workOrderService.getWorkOrderByCardNo(cardNo);
if (workOrder == null) {
throw new ServiceException("车间订单不存在!");
}
return prWorkOrder;
return workOrder;
}
}

@ -695,6 +695,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
/**
* 存储同槽额外面积
*
* @param code
*/
private void setBsAdditionalMess(String code) {

Loading…
Cancel
Save