diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java index 0928ef1e..be165ebe 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java @@ -28,6 +28,74 @@ import java.util.List; @EqualsAndHashCode(callSuper = true) public class BasicClazz extends BaseEntity { + /** + * 物料标记 + */ + public static Short TYPE_FLAG = 1; + /** + * 出库原因 + */ + public static Short TYPE_OUT_STORE = 2; + /** + * 退库原因 + */ + public static Short TYPE_TK_STORE = 3; + + /** + * 简单原因 + */ + public static Short TYPE_POOR_REASON = 4; + + /** + * 镀种分类 + */ + public static Short TYPE_PLATING_ASSORT = 5; + + /** + * IOT获取挂次号接口保存 + */ + public static Short TYPE_SUSPENSION_NO = 6; + + /** + * 外协匹配规则 + */ + public static Short TYPE_RULE = 7; + + /** + * 排除部门 + */ + public static Short TYPE_EXCLUDE_DIVISION = 8; + + /** + * 异常配置 + */ + public static Short TYPE_ABNORMAL_CONFIG = 9; + + /** + * 成本类型 + */ + public static Short TYPE_COST_TYPE = 10; + + /** + * 烧结转试验计划 + */ + public static Short TYPE_TEST_TYPE = 11; + + /** + * 绩效模板 + */ + public static Short TYPE_JXMB = 12; + + /** + * 重点工作类型 + */ + public static Short TYPE_ZDGZLX = 13; + + /** + * 绩效模板 + */ + public static Short TYPE_NOTICE = 14; + @Serial private static final long serialVersionUID = 1L; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/DeviceBindDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/DeviceBindDTO.java new file mode 100644 index 00000000..ca816c75 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/DeviceBindDTO.java @@ -0,0 +1,50 @@ +package org.springblade.desk.produce.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 设备绑定 数据传输对象实体类 + * @author litao + */ +@Data +public class DeviceBindDTO { + + @Schema(description = "工序ID集合") + private String planListIds; + + @Schema(description = "挂具ID") + private Long rsId; + + @Schema(description = "挂具ID集合") + private String rsList; + + @Schema(description = "飞靶ID") + private Long fsId; + + @Schema(description = "飞靶ID集合") + private String fsList; + + @Schema(description = "设备ID") + private Long ecId; + + @Schema(description = "挂次号") + private String hangNum; + + @Schema(description = "挂次号id") + private Long hangNumId; + + @Schema(description = "是否解绑") + private String unFsBool; + + @Schema(description = "") + private String dopedParts; + + @Schema(description = "") + private String net; + + @Schema(description = "") + private String rack; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/BsAdditionalMess.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/BsAdditionalMess.java new file mode 100644 index 00000000..a8f7c1ff --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/BsAdditionalMess.java @@ -0,0 +1,79 @@ +package org.springblade.desk.produce.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; +import java.util.Date; + +/** + * 额外信息存储 实体类 + * @author litao + */ +@Data +@TableName("MES_BS_ADDITIONAL_MESS") +@Schema(description = "BsAdditionalMess对象") +@EqualsAndHashCode(callSuper = true) +public class BsAdditionalMess extends BaseEntity { + /** + * 同槽增加额外面积 + */ + public static Short TYPE_ONE = 1; + + /** + * 试验项目名称 + */ + public static Short TYPE_TEST_PROJECT_TYPE = 2; + + /** + * 试验项目标准 + */ + public static Short TYPE_TEST_PROJECT_STANDARD_TYPE = 3; + + /** + * 玻璃饼最低库存 + */ + public static Short TYPE_BLB_MIN_STOCK = 4; + + /** + * 模块说明 + */ + public static Short TYPE_MODULE_DETAIL = 5; + + /** + * 年度数据存储 + */ + public static Short TYPE_YEAR_DATA = 6; + + /** + * 班组准时率 + */ + public static Short TYPE_TEAM_PUNCTUALITY = 7; + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "数据1") + private String oneData; + + @Schema(description = "数据2") + private String twoData; + + @Schema(description = "数据3") + private String threeData; + + @Schema(description = "数据4") + private String fourData; + + @Schema(description = "业务类别") + private Short type; + + @Schema(description = "小数类型-数据1") + private Double douOneData = 0d; + + @Schema(description = "备注") + private String memo; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICenterTeamService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICenterTeamService.java index b5181377..081d9bc2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICenterTeamService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICenterTeamService.java @@ -23,4 +23,5 @@ import java.util.List; */ public interface ICenterTeamService extends BaseService { + CenterTeam getByTsId(Long makeTeam); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IRelTeamSetUserService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IRelTeamSetUserService.java index c4b75bf6..65fe2b94 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IRelTeamSetUserService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IRelTeamSetUserService.java @@ -41,4 +41,11 @@ public interface IRelTeamSetUserService extends BaseService { * @param vo */ void setVOValue(RelTeamSetUserVO vo); + + /** + * 获取班组id + * @param userId + * @return + */ + List getTeamId(Long userId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CenterTeamServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CenterTeamServiceImpl.java index 2614f4d2..4003c0b4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CenterTeamServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CenterTeamServiceImpl.java @@ -6,6 +6,7 @@ package org.springblade.desk.basic.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @@ -43,4 +44,12 @@ import java.util.List; public class CenterTeamServiceImpl extends BaseServiceImpl implements ICenterTeamService { + @Override + public CenterTeam getByTsId(Long makeTeam) { + List list = this.list(Wrappers.lambdaQuery(CenterTeam.class).eq(CenterTeam::getTsId, makeTeam)); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/RelTeamSetUserServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/RelTeamSetUserServiceImpl.java index 2fb90dde..f66ac354 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/RelTeamSetUserServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/RelTeamSetUserServiceImpl.java @@ -5,15 +5,19 @@ 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; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.basic.constant.UserRightConst; import org.springblade.desk.basic.excel.RelTeamSetUserExcel; import org.springblade.desk.basic.mapper.RelTeamSetUserMapper; import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; +import org.springblade.desk.basic.pojo.entity.UserRight; import org.springblade.desk.basic.pojo.vo.RelTeamSetUserVO; import org.springblade.desk.basic.service.IRelTeamSetUserService; import org.springblade.system.feign.IDictClient; @@ -58,4 +62,13 @@ public class RelTeamSetUserServiceImpl extends BaseServiceImpl getTeamId(Long userId) { + List relTeamSetUsers = this.list(Wrappers.lambdaQuery(RelTeamSetUser.class).eq(RelTeamSetUser::getUserId, userId)); + if (CollectionUtils.isEmpty(relTeamSetUsers)) { + return null; + } + return relTeamSetUsers.stream().map(RelTeamSetUser::getTeamSetId).toList(); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IEquipmentService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IEquipmentService.java index c430bbec..36ad8a48 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IEquipmentService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IEquipmentService.java @@ -76,4 +76,9 @@ public interface IEquipmentService extends BaseService { Boolean editIp(String ip, Long deviceId); void regularlyUpdated(); + + /** + * 根据设备编号查询设备信息 + */ + EquipmentEntity getDeEquipmentCardByCode(String deviceCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IFeiBaSetService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IFeiBaSetService.java index 12912a24..1292018a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IFeiBaSetService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IFeiBaSetService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import jakarta.validation.constraints.NotEmpty; import org.springblade.core.mp.base.BaseService; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; +import org.springblade.desk.device.pojo.entity.RackSetEntity; import org.springblade.desk.device.pojo.excel.FeiBaSetExcel; import java.util.List; @@ -44,4 +45,9 @@ public interface IFeiBaSetService extends BaseService { Boolean bind(@NotEmpty List ids, Integer deviceId); void regularlyUpdated(); + + /** + * 根据设备编号获取飞靶 + */ + FeiBaSetEntity getBsFeiBaSetByCode(String fsCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/EquipmentServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/EquipmentServiceImpl.java index d3a3a5df..e617b7c0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/EquipmentServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/EquipmentServiceImpl.java @@ -170,6 +170,15 @@ public class EquipmentServiceImpl extends BaseServiceImpl list = this.list(Wrappers.lambdaQuery(EquipmentEntity.class).eq(EquipmentEntity::getDeviceCode, deviceCode)); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } + /** * 构建请求体 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/FeiBaSetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/FeiBaSetServiceImpl.java index 506c1067..276bd888 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/FeiBaSetServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/FeiBaSetServiceImpl.java @@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.desk.device.mapper.FeiBaSetMapper; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; +import org.springblade.desk.device.pojo.entity.RackSetEntity; import org.springblade.desk.device.pojo.excel.FeiBaSetExcel; import org.springblade.desk.device.service.IFeiBaSetService; import org.springblade.desk.order.pojo.entity.YieldOrder; @@ -162,4 +163,13 @@ public class FeiBaSetServiceImpl extends BaseServiceImpl list = this.list(Wrappers.lambdaQuery(FeiBaSetEntity.class).eq(FeiBaSetEntity::getFsCode, fsCode)); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java index 3fb0671e..43e24d87 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java @@ -1,5 +1,6 @@ package org.springblade.desk.produce.controller; +import com.alibaba.fastjson.JSONObject; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -7,15 +8,22 @@ import lombok.RequiredArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.desk.device.pojo.entity.EquipmentEntity; +import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; 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.entity.MesEquipmentCardEntity; +import org.springblade.desk.produce.pojo.entity.WorkPlan; 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.*; +import java.util.List; +import java.util.Map; + /** * @ClassName PdaLoadController * @Description: 手持移动端数据查询接口 @@ -35,28 +43,34 @@ public class PdaLoadController { @GetMapping(value = "/loadBindData/{cardNo}") @ApiOperationSupport(order = 1) @Operation(summary = "加载绑定需要的流程卡数据", description = "传入cardNo") - public R loadBindData(@PathVariable String cardNo) { + public R loadBindData(@PathVariable String cardNo) { return R.data(pdaLoadService.loadBindData(AuthUtil.getUserId(), cardNo)); } - @GetMapping(value = "getBsFeiBaSetByCode/{rsCode}") + @GetMapping(value = "/getBsRackSetByCode/{rsCode}") @ApiOperationSupport(order = 2) @Operation(summary = "根据挂具编码查询数据", description = "传入rsCode") - public R getBsFeiBaSetByCode(@PathVariable String rsCode) { + public R getBsRackSetByCode(@PathVariable String rsCode) { return R.data(pdaLoadService.getBsRackSetByCode(rsCode)); } + @GetMapping(value = "/getBsFeiBaSetByCode/{fsCode}") + @Operation(summary = "根据飞靶编码查询数据", description = "fsCode") + public R getBsFeiBaSetByCode(@PathVariable String fsCode) { + return R.data(pdaLoadService.getBsFeiBaSetByCode(fsCode)); + } + @GetMapping(value = "/getBsFeiBaSetByCodeUn/{fsCode}") @ApiOperationSupport(order = 3) @Operation(summary = "根据挂具编码查询数据(解绑)", description = "传入fsCode") - public R getBsFeiBaSetByCodeUn(@PathVariable String fsCode) { + public R getBsFeiBaSetByCodeUn(@PathVariable String fsCode) { return R.data(pdaLoadService.getBsFeiBaSetByCode(fsCode)); } @GetMapping(value = "/getEcByDeviceCode/{deviceCode}") @ApiOperationSupport(order = 4) @Operation(summary = "根据设备编码查询数据", description = "传入deviceCode") - public R getEcByDeviceCode(@PathVariable String deviceCode) { + public R getEcByDeviceCode(@PathVariable String deviceCode) { return R.data(pdaLoadService.getEcByCode(deviceCode)); } @@ -96,4 +110,11 @@ public class PdaLoadController { return R.status(pdaLoadService.saveProCheck(inspectionTask)); } + @GetMapping(value = "/getHangNum") + @ApiOperationSupport(order = 7) + @Operation(summary = "根据设备编号获取挂次号", description = "") + public R> getHangNum(@RequestParam String deviceCode) { + return R.data(pdaLoadService.getHangNum(deviceCode)); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java index 440d0fce..4d50ff94 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java @@ -6,8 +6,10 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.pojo.entity.BasicClazz; import org.springblade.desk.basic.service.IBasicClazzService; +import org.springblade.desk.produce.pojo.dto.DeviceBindDTO; import org.springblade.desk.produce.pojo.entity.MesEquipmentCardEntity; import org.springblade.desk.produce.pojo.vo.SjEcBingCardVo; import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo; @@ -35,63 +37,64 @@ public class PdaSaveController { @Operation(summary = "流程卡与挂具绑定") @PostMapping("/gjBindingCrad") - public R gjBindingCrad(@RequestParam(value = "rsId") Long rsId, @RequestParam(value = "planListIds") String planListIds) { - pdaSaveService.bindingCard(rsId, null, null, planListIds); + public R gjBindingCrad(@RequestBody DeviceBindDTO deviceBindDTO) { + pdaSaveService.bindingCard(deviceBindDTO); 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); + public R gjBindingFb(@RequestBody DeviceBindDTO deviceBindDTO) { + pdaSaveService.binding(deviceBindDTO); return R.success(); } @Operation(summary = "飞靶与设备绑定") @PostMapping("/fbBindingEc") - public R fbBindingEc(@RequestParam(value = "fsId") Long fsId, @RequestParam(value = "ecId") Long ecId, - @RequestParam(value = "hangNum") Long hangNum, @RequestParam(value = "unFsBool") Boolean unFsBool) { + public R fbBindingEc(@RequestBody DeviceBindDTO deviceBindDTO) { String hangNumName = ""; BasicClazz bsBasicClass = null; - if (hangNum != null && hangNum != -1) { + Long hangNum = deviceBindDTO.getHangNumId(); + if (hangNum != null && hangNum != -1L) { bsBasicClass = basicClazzService.getById(hangNum); if (bsBasicClass != null) { hangNumName = bsBasicClass.getName(); } - } else if (hangNum == -1) { + } else if (hangNum == -1L) { hangNumName = "-1"; } - pdaSaveService.binding(fsId, ecId, unFsBool, hangNumName, null); - // 删除产线设备对应的挂次号之前的数据 + deviceBindDTO.setHangNum(hangNumName); + pdaSaveService.binding(deviceBindDTO); + // 删除产线设备对应的挂次号之前的数据 if (bsBasicClass != null) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(BasicClazz::getCode, bsBasicClass.getCode()); - wrapper.eq(BasicClazz::getBizType, "6"); - wrapper.lt(BasicClazz::getUpdateTime, bsBasicClass.getUpdateTime()); + wrapper.eq(BasicClazz::getBizType, BasicClazz.TYPE_SUSPENSION_NO); + wrapper.le(BasicClazz::getUpdateTime, bsBasicClass.getUpdateTime()); wrapper.set(BasicClazz::getIsDeleted, 1); - basicClazzService.update(null, wrapper); + basicClazzService.update(wrapper); } 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); + public R fbBindingCrad(@RequestBody DeviceBindDTO deviceBindDTO) { + pdaSaveService.bindingCard(deviceBindDTO); 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); + public R ecBindingCrad(@RequestBody DeviceBindDTO deviceBindDTO) { + pdaSaveService.bindingCard(deviceBindDTO); 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); + public R gjBindingEc(@RequestBody DeviceBindDTO deviceBindDTO) { + pdaSaveService.binding(deviceBindDTO); return R.success(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsAdditionalMessMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsAdditionalMessMapper.java new file mode 100644 index 00000000..3cd615e2 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsAdditionalMessMapper.java @@ -0,0 +1,14 @@ +package org.springblade.desk.produce.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.produce.pojo.entity.BsAdditionalMess; + +/** + * 额外信息存储 Mapper 接口 + * + * @author BladeX + */ +public interface BsAdditionalMessMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java index f3703917..720868a5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java @@ -24,4 +24,6 @@ public interface MacToolUseMapper extends BaseMapper { MesQcProduceRunEntity getBoxInfoByWpIdMtnCode(Long id); MacToolUse queryByParams(Long wpId, Integer rsBool, Integer fsBool, Integer ecBool); + + String findMaxCodeByParams(Long rsId, Long fsId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml index 88580458..d6532e94 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml @@ -91,6 +91,22 @@ and EQUIPMENT_CARD is not null order by MTN_CODE) where rownum = 1 + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IBsAdditionalMessService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IBsAdditionalMessService.java new file mode 100644 index 00000000..595244c0 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IBsAdditionalMessService.java @@ -0,0 +1,14 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.BsAdditionalMess; + +/** + * 额外信息存储 服务类 + * + * @author BladeX + */ +public interface IBsAdditionalMessService extends BaseService { + + BsAdditionalMess getDataByOneData(String mtnCode, short type); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java index b9f6ffd4..50ee87c3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java @@ -52,4 +52,14 @@ public interface IMacToolUseService extends BaseService { MacToolUse getHangNumIsNull(Long id); MacToolUse queryByParams(Long id, Integer rsBool, Integer fsBool, Integer ecBool); + + /** + * 根据挂具编码或者飞靶编码查询正在运行的最大绑定数据 + */ + String findMaxCodeByParams(Long rsId, Long fsId); + + /** + * 根据条件查询绑定的流程卡信息 + */ + List listByParams(Long rsId, Long fsId, Long ecId, String hangNum); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java index 67de301c..7f6e316a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java @@ -1,10 +1,13 @@ package org.springblade.desk.produce.service; +import com.alibaba.fastjson.JSONObject; import org.springblade.core.mp.base.BaseService; import org.springblade.core.secure.BladeUser; +import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.entity.RackSetEntity; import org.springblade.desk.order.pojo.entity.YieldOrder; +import org.springblade.desk.produce.pojo.entity.MesEquipmentCardEntity; import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO; @@ -52,7 +55,7 @@ public interface IPdaLoadService extends BaseService { * @param deviceCode 设备编码 * @return java.lang.Object */ - Object getEcByCode(String deviceCode); + EquipmentEntity getEcByCode(String deviceCode); LoadSubOrderVO loadSubOrder(String cardNo); @@ -68,4 +71,6 @@ public interface IPdaLoadService extends BaseService { boolean saveProCheck(InspectionTask inspectionTask); + + List getHangNum(String deviceCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java index 9b89641d..4ad5cc92 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java @@ -1,6 +1,7 @@ package org.springblade.desk.produce.service; import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.dto.DeviceBindDTO; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.desk.produce.pojo.dto.ShiftTransferDTO; import org.springblade.desk.produce.pojo.entity.MacToolUse; @@ -21,21 +22,14 @@ public interface IPdaSaveService extends BaseService { /** *

方法名: bindingCard

*

方法描述: 绑定卡

- * - * @param rsId 挂具id - * @param planListIds 绑定数据 */ - void bindingCard(Long rsId, Long fsId, Long ecId, String planListIds); + void bindingCard(DeviceBindDTO deviceBindDTO); + /** *

方法名: binding

*

方法描述: 绑定

- * - * @param rsId 挂具id - * @param ecId 设备id - * @param unFsBool 是否解绑 - * @param rsListIds 绑定数据 */ - void binding(Long rsId, Long ecId, Boolean unFsBool,String hangNum,String rsListIds); + void binding(DeviceBindDTO deviceBindDTO); /** *

方法名: sjBindingCard

*

方法描述: 绑定卡

diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java index fe6bbec3..b67bbd16 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java @@ -49,4 +49,8 @@ public interface IPlateAroundService extends BaseService { */ void createPlateAround(Long userId, PlateAround plateAround, Short paType, int next, Boolean aTure); + /** + * 根据作业计划id和类型查询镀前镀后记录 + */ + PlateAround getPrPlateAround(Long id, Short beforePlanOut); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java index 01f54560..b322c44f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java @@ -41,4 +41,6 @@ public interface IWorkPlanService extends BaseService { List getProduceMonitorWorkPlanList(Long woId); WorkPlan findMaxHostWorkUnitByWoId(Long id, int i); + + void verifyMakeUnit(WorkPlan prWorkPlan); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/BsAdditionalMessServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/BsAdditionalMessServiceImpl.java new file mode 100644 index 00000000..5d1d5b11 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/BsAdditionalMessServiceImpl.java @@ -0,0 +1,33 @@ +package org.springblade.desk.produce.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.produce.mapper.BsAdditionalMessMapper; +import org.springblade.desk.produce.pojo.entity.BsAdditionalMess; +import org.springblade.desk.produce.service.IBsAdditionalMessService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 额外信息存储 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class BsAdditionalMessServiceImpl extends BaseServiceImpl implements IBsAdditionalMessService { + + @Override + public BsAdditionalMess getDataByOneData(String mtnCode, short type) { + List list = this.list(Wrappers.lambdaQuery(BsAdditionalMess.class).eq(BsAdditionalMess::getOneData, mtnCode).eq(BsAdditionalMess::getType, type)); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java index df809838..df41d7ce 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java @@ -2,6 +2,7 @@ package org.springblade.desk.produce.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -36,6 +37,7 @@ public class MacToolUseServiceImpl extends BaseServiceImpl listByParams(Long rsId, Long fsId, Long ecId, String hangNum) { + return this.list(Wrappers.lambdaQuery(MacToolUse.class) + .eq(MacToolUse::getFinished, 0) + .eq(rsId != null, MacToolUse::getBsRackSet, rsId) + .eq(fsId != null, MacToolUse::getBsFeiBaSet, fsId) + .eq(ecId != null, MacToolUse::getEquipmentCard, ecId) + .eq(StringUtils.isNotBlank(hangNum), MacToolUse::getHangNum, hangNum)); + } + public static final int time2Integer(Date d) { Calendar cal = Calendar.getInstance(); cal.setTime(d); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java index 77812e92..787feb3b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java @@ -14,16 +14,14 @@ import org.springblade.core.mp.base.BaseServiceImpl; 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.basic.pojo.entity.*; +import org.springblade.desk.basic.service.*; import org.springblade.desk.dashboard.pojo.entity.*; import org.springblade.desk.dashboard.service.*; +import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.entity.RackSetEntity; +import org.springblade.desk.device.service.IEquipmentService; import org.springblade.desk.device.service.IFeiBaSetService; import org.springblade.desk.device.service.IRackSetService; import org.springblade.desk.order.pojo.entity.YieldOrder; @@ -42,6 +40,7 @@ import org.springblade.desk.quality.service.IPlanTestService; import org.springblade.desk.quality.service.IWorkPlanItemService; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.time.LocalDateTime; @@ -83,7 +82,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl tsIds = userRightService.getTeamId(userId); + List tsIds = relTeamSetUserService.getTeamId(userId); //获取作业计划 WorkPlan workPlan = workPlanService.getById(prWorkOrder.getWpId()); //获取当前工序的下序 @@ -254,44 +266,62 @@ public class PdaLoadServiceImpl extends BaseServiceImpl 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("当前工序无作业中心!"); -// } + WorkCenter bsWorkCenter = null; + CenterTeam centerTeam; + if (!checkCurrentProcess || (frontPrWorkPlan == null && prWorkPlan.getStatus().equals(WorkPlan.STATUS_NO_START)) || nextPrWorkPlan == null) { + if (prWorkPlan.getMakeTeam() == null) { + throw new ServiceException("当前工序无加工班组"); + } + + // 根据当前工序班组查询作业中心 + centerTeam = centerTeamService.getByTsId(prWorkPlan.getMakeTeam()); + if (centerTeam != null) { + bsWorkCenter = workCenterService.getById(centerTeam.getWcId()); + } + // 验证当前登录人和当前工序的班组是否一致 + this.checkMakeTeamOne(prWorkPlan, tsIds); + if (checkAfterPlating) { + workPlanService.verifyMakeUnit(prWorkPlan); + } + } else { + + if (nextPrWorkPlan.getMakeTeam() == null) { + throw new ServiceException("当前工序无加工班组"); + } + + // 根据当前工序班组查询作业中心 + centerTeam = centerTeamService.getByTsId(nextPrWorkPlan.getMakeTeam()); + if (centerTeam != null) { + bsWorkCenter = workCenterService.getById(centerTeam.getWcId()); + } + //验证当前登录人和当前工序的班组是否一致 + this.checkMakeTeamOne(nextPrWorkPlan, tsIds); + if (checkAfterPlating) { + workPlanService.verifyMakeUnit(nextPrWorkPlan); + } + } + if (bsWorkCenter == null) { + throw new ServiceException("当前工序无作业中心!"); + } + } + + private void checkMakeTeamOne(WorkPlan prWorkPlan, List tsIds) { + Long teamTsId = null; + + //判断是否特殊工序,如果是特殊工序验证附属班组,反之则为分派班组 + //20260304 逻辑更改,若存在附属班组,则验证附属班组,不存在附属班组,验证加工班组 + if (prWorkPlan.getSubsidiaryTeam() != null) { + teamTsId = prWorkPlan.getSubsidiaryTeam(); + } else { + teamTsId = prWorkPlan.getMakeTeam(); + } + + if (tsIds == null) { + throw new ServiceException("当前登录人无对应班组!"); + } + if (!tsIds.contains(teamTsId)) { + throw new ServiceException("当前工序不是登录人所在班组工序,不能操作!"); + } } @Override @@ -314,6 +344,29 @@ public class PdaLoadServiceImpl extends BaseServiceImpl getHangNum(String deviceCode) { + List objectList = new ArrayList<>(); + if (deviceCode.contains(prefixId)) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("label", "钝化专用"); + jsonObject.put("value", -1); + objectList.add(jsonObject); + } + List basicClazzList = basicClazzService.list(Wrappers.lambdaQuery(BasicClazz.class).eq(BasicClazz::getCode, deviceCode).eq(BasicClazz::getBizType, BasicClazz.TYPE_SUSPENSION_NO)); + if (basicClazzList == null) { + return List.of(); + } + + for (BasicClazz basicClazz : basicClazzList) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("label", basicClazz.getName()); + jsonObject.put("value", basicClazz.getId()); + objectList.add(jsonObject); + } + return objectList; + } + @Override public void handleBaoZhuangWorkPlan(List wpList, YieldOrder yo) { if (wpList == null || wpList.size() == 0) { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java index c68b92a8..08357bc4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.BeanUtils; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; @@ -12,18 +13,22 @@ import org.apache.commons.lang3.StringUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.service.IRelTeamSetUserService; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity; import org.springblade.desk.dashboard.service.*; +import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.entity.RackSetEntity; +import org.springblade.desk.device.service.IEquipmentService; import org.springblade.desk.device.service.IFeiBaSetService; import org.springblade.desk.device.service.IRackSetService; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.produce.mapper.WorkPlanMapper; +import org.springblade.desk.produce.pojo.dto.DeviceBindDTO; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.desk.produce.pojo.dto.PrMacTooUseSpec; import org.springblade.desk.produce.pojo.dto.ShiftTransferDTO; @@ -44,6 +49,8 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import static com.fasterxml.jackson.databind.type.LogicalType.DateTime; @@ -61,30 +68,10 @@ public class PdaSaveServiceImpl extends BaseServiceImpl planListIds = Func.toLongList(deviceBindDTO.getPlanListIds()); + if (rsId == null && fsId == null && CollectionUtils.isEmpty(planListIds)) { + throw new ServiceException("数据格式不正确!"); + } - //同槽号 + RackSetEntity rackSet = this.getRackSetByRsId(rsId); + FeiBaSetEntity feiBaSet = this.getFeiBaSetByFsId(fsId); + EquipmentEntity equipment = this.getEquipmentCardByEcId(ecId); + + // 同槽号 String code = null; - //rsId挂具绑定流程卡,fsId飞靶绑定流程卡 + // rsId挂具绑定流程卡,fsId飞靶绑定流程卡 if (rsId != null) { - List macToolUseList = macToolUseService.list(Wrappers.query().lambda() - .eq(MacToolUse::getBsRackSet, rsId) - .eq(MacToolUse::getFinished, false) - .eq(MacToolUse::getIsDeleted, 0).orderByDesc(MacToolUse::getMtnCode) - ); - if (macToolUseList.size() > 0) { - code = macToolUseList.get(0).getMtnCode(); - } + code = macToolUseService.findMaxCodeByParams(rsId, null); //如果未找到满足条件的同槽号 if (StringUtils.isBlank(code)) { code = macToolUseService.nextCode(0); } //修改挂具状态 + rackSet.setStatus(RackSetEntity.RS_STATUS_BOUND); + rackSet.setBindQty((short) (rackSet.getBindQty() + 1)); rackSetService.updateById(rackSet); + } else if (fsId != null) { + code = macToolUseService.findMaxCodeByParams(null, fsId); + //如果未找到满足条件的同槽号 + if (StringUtils.isBlank(code)) { + code = macToolUseService.nextCode(1); + } + //修改飞靶状态 + feiBaSet.setStatus(FeiBaSetEntity.FS_STATUS_BOUND); + feiBaSet.setBindQty((short) (feiBaSet.getBindQty() + 1)); + feiBaSetService.updateById(feiBaSet); + } else if (ecId != null) { + code = macToolUseService.nextCode(2); } - //fsId 是空,逻辑不会走 + //处理绑定信息 - WorkPlan prWorkPlan = null; - MacToolUse mtu = null; - //绑定日期 - Date nowDate = new Date(); - String[] str = planListIds.split(","); - for (int i = 0; i < str.length; i++) { - Long planId = Long.parseLong(str[i]); - prWorkPlan = this.getById(planId); + WorkPlan workPlan; + MacToolUse mtu; + List workPlans = this.listByIds(planListIds); + // stream流将workPlans按照ID转换为map + Map workPlanMap = workPlans.stream().collect(Collectors.toMap(WorkPlan::getId, wp -> wp)); + for (Long planId : planListIds) { + workPlan = workPlanMap.get(planId); mtu = new MacToolUse(); - mtu.setMtnCode(code); - mtu.setBsRackSet(rsId); - mtu.setWpId(prWorkPlan.getId()); - mtu.setCreateMan(AuthUtil.getUser().getUserId()); - mtu.setUpdateTime(nowDate); - mtu.setCreateTime(nowDate); - macToolUseService.saveOrUpdate(mtu); + mtu.setWpId(planId); + this.packageMtu(mtu, rsId, fsId, ecId, code); + macToolUseService.save(mtu); //修改作业计划绑定状态为绑定 - prWorkPlan.setBindStatus(WorkPlan.BIND_STATUS_BIND); + workPlan.setBindStatus(WorkPlan.BIND_STATUS_BIND); if (rsId == null) { - prWorkPlan.setPrintType(WorkPlan.PRINT_TYPE_PROCESS); + workPlan.setPrintType(WorkPlan.PRINT_TYPE_PROCESS); } - this.updateById(prWorkPlan); + this.updateById(workPlan); } // 存储同槽额外面积 没有表,后期添加 - this.setBsAdditionalMess(code); + this.setBsAdditionalMess(code, deviceBindDTO); + } + + private EquipmentEntity getEquipmentCardByEcId(Long ecId) { + if (ecId == null) { + return null; + } + + EquipmentEntity equipment = equipmentService.getById(ecId); + if (equipment == null) { + throw new ServiceException("此设备不存在!"); + } + return equipment; + } + + private FeiBaSetEntity getFeiBaSetByFsId(Long fsId) { + if (fsId == null) { + return null; + } + + FeiBaSetEntity feiBaSet = feiBaSetService.getById(fsId); + if (feiBaSet == null) { + throw new ServiceException("此飞靶不存在!"); + } + return feiBaSet; + } + + private RackSetEntity getRackSetByRsId(Long rsId) { + if (rsId == null) { + return null; + } + + RackSetEntity rackSet = rackSetService.getById(rsId); + if (rackSet == null) { + throw new ServiceException("此挂具不存在!"); + } + return rackSet; } @Override - public void binding(Long fsId, Long ecId, Boolean unFsBool, String hangNum, String rsListIds) { + public void binding(DeviceBindDTO deviceBindDTO) { + Long fsId = deviceBindDTO.getFsId(); + Long ecId = deviceBindDTO.getEcId(); + List rsListIds = Func.toLongList(deviceBindDTO.getRsList()); + if (CollectionUtils.isEmpty(rsListIds) && fsId == null && ecId == null) { + throw new ServiceException("数据格式不正确!"); + } + //获取同槽号 String code = null; - Date nowDate = new Date(); - FeiBaSetEntity frackSet = feiBaSetService.getById(fsId); + FeiBaSetEntity feiBaSet = this.getFeiBaSetByFsId(fsId); + //挂具集合不为空,则代表是挂具相关绑定,反之则是飞靶绑定设备 if (rsListIds != null) { if (fsId != null) { - List macToolUseList = macToolUseService.list(Wrappers.query().lambda() - .eq(MacToolUse::getBsRackSet, fsId) - .eq(MacToolUse::getFinished, false) - .eq(MacToolUse::getIsDeleted, 0).orderByDesc(MacToolUse::getMtnCode) - ); - if (macToolUseList.size() > 0) { - code = macToolUseList.get(0).getMtnCode(); - } + code = macToolUseService.findMaxCodeByParams(null, fsId); //修改飞靶状态 - feiBaSetService.updateById(frackSet); + feiBaSet.setStatus(FeiBaSetEntity.FS_STATUS_BOUND); + feiBaSet.setBindQty((short) (feiBaSet.getBindQty() + 1)); + feiBaSetService.updateById(feiBaSet); //如果未找到满足条件的同槽号,则自动生成一个同槽号(飞靶) if (StringUtils.isBlank(code)) { - code = macToolUseService.nextCode(0); + code = macToolUseService.nextCode(1); } } else { //如果未找到满足条件的同槽号,则自动生成一个同槽号(设备) @@ -182,51 +221,85 @@ public class PdaSaveServiceImpl extends BaseServiceImpl macToolUseList = macToolUseService.list(Wrappers.query().lambda() - .eq(MacToolUse::getBsRackSet, rsId) - .eq(MacToolUse::getFinished, false) - .eq(MacToolUse::getIsDeleted, 0) - ); + List mtuLst = macToolUseService.listByParams(rsId, null, null, null); + if (CollectionUtils.isEmpty(mtuLst)) { + throw new ServiceException("挂具" + rackSet.getRsCode() + "未绑定流程卡!"); + } //开始绑定 - for (int i1 = 0; i1 < macToolUseList.size(); i1++) { - MacToolUse mtu = macToolUseList.get(i1); - mtu.setMtnCode(code); - mtu.setBsRackSet(rsId); - mtu.setUpdateTime(nowDate); - mtu.setCreateMan(AuthUtil.getUser().getUserId()); - macToolUseService.updateById(mtu); + for (MacToolUse mtu : mtuLst) { + // 如果挂具绑定了飞靶或者设备,则提示,不能重复绑定 + if (mtu.getBsFeiBaSet() != null || mtu.getEquipmentCard() != null) { + throw new ServiceException("挂具【" + rackSet.getRsCode() + "】已绑定" + (mtu.getBsFeiBaSet() == null ? "设备【" + mtu.getEquipmentCard() : "飞靶【" + mtu.getBsFeiBaSet()) + "】,不能重复绑定!"); + } + this.packageMtu(mtu, rsId, fsId, ecId, code); } + macToolUseService.updateBatchById(mtuLst); // 存储同槽额外面积 - this.setBsAdditionalMess(code); + this.setBsAdditionalMess(code, deviceBindDTO); } - } else { - List macToolUseList = macToolUseService.list(Wrappers.query().lambda() - .eq(MacToolUse::getBsFeiBaSet, frackSet.getId()) - .eq(MacToolUse::getIsDeleted, 0) - ); - //未标记解绑飞靶,则代表正常绑定 - if (unFsBool == null) { - //获取以设备为基准的同槽号 + List mtuLst = macToolUseService.listByParams(null, fsId, null, null); + if (CollectionUtils.isEmpty(mtuLst)) { + throw new ServiceException("此飞靶未绑定挂具!"); + } + // 未标记解绑飞靶,则代表正常绑定 + if (deviceBindDTO.getUnFsBool() == null || "0".equals(deviceBindDTO.getUnFsBool())) { + // 获取以设备为基准的同槽号 code = macToolUseService.nextCode(2); - //开始绑定 - for (int i = 0; i < macToolUseList.size(); i++) { - MacToolUse mtu = macToolUseList.get(i); - mtu.setMtnCode(code); - mtu.setHangNum(null); - mtu.setMtnCode(code); - mtu.setUpdateTime(nowDate); - mtu.setCreateMan(AuthUtil.getUser().getUserId()); - macToolUseService.updateById(mtu); + // 挂次号必填 + if (StringUtils.isBlank(deviceBindDTO.getHangNum())) { + throw new ServiceException("挂次号不能为空!"); + } + // 开始绑定 + for (MacToolUse mtu : mtuLst) { + // 如果飞靶绑定了设备,则提示,不能重复绑定 + if (mtu.getEquipmentCard() != null) { + throw new ServiceException("飞靶【" + feiBaSet.getFsCode() + "】已绑定设备【" + mtu.getEquipmentCard() + "】,不能重复绑定!"); + } + // 靶备绑定下更新同槽额外面积存储记录中的同槽编号 + if (StringUtils.isNotBlank(mtu.getMtnCode())) { + BsAdditionalMess dataByOneData = bsAdditionalMessService.getDataByOneData(mtu.getMtnCode(), (short) 1); + if (dataByOneData != null && dataByOneData.getId() != null) { + dataByOneData.setOneData(code); + bsAdditionalMessService.updateById(dataByOneData); + } + } + mtu.setHangNum(deviceBindDTO.getHangNum()); + this.packageMtu(mtu, mtu.getBsRackSet(), fsId, ecId, code); + } + } else { + // 开始绑定 + MacToolUse newMtu = null; + for (MacToolUse mtu : mtuLst) { + newMtu = new MacToolUse(); + newMtu.setWpId(mtu.getWpId()); + // 直接共享产线设备的同槽(烘箱) + this.packageMtu(newMtu, mtu.getBsRackSet(), null, mtu.getEquipmentCard(), mtu.getMtnCode()); + macToolUseService.save(newMtu); + + //标识绑定记录状态为解绑 + mtu.setFinished(1); + // 将飞拔状态改为空闲 + if (mtu != null && mtu.getBsFeiBaSet() != null) { + this.unBindBsFeiBaSet(feiBaSetService.getById(mtu.getBsFeiBaSet())); + } } - } //else 逻辑不走 + //获取第一次烘箱的温度数据 +// macToolUseService.haveHongXiaoTem(newMtu); + } + macToolUseService.updateBatchById(mtuLst); } } + private void packageMtu(MacToolUse mtu, Long rsId, Long fsId, Long ecId, String code) { + mtu.setMtnCode(code); + mtu.setBsRackSet(rsId); + mtu.setBsFeiBaSet(fsId); + mtu.setEquipmentCard(ecId); + } + @Override public void sjBindingCard(SjEcBingCardVo sjEcBingCardVo) { MesEquipmentCardEntity equipmentCard = null; @@ -682,8 +755,9 @@ public class PdaSaveServiceImpl extends BaseServiceImpl mtuList) { - if (mtuList == null || mtuList.size() == 0) + if (mtuList == null || mtuList.isEmpty()) { return; + } for (MacToolUse mtu : mtuList) { //修改作业计划绑定状态 @@ -695,11 +769,17 @@ public class PdaSaveServiceImpl extends BaseServiceImpl list = this.list(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, id).eq(PlateAround::getPaType, beforePlanOut).orderByDesc(PlateAround::getId)); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } + private void savePlateAround(BladeUser user, PlateAround plateAround, Short paType, int next, Boolean aTure) { PlateAround newPa = null; PlateAround oldPa=null; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java index 904285bd..34288b9f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java @@ -5,10 +5,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.desk.basic.pojo.entity.CenterTeam; import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; +import org.springblade.desk.basic.pojo.entity.WorkCenter; +import org.springblade.desk.basic.service.ICenterTeamService; import org.springblade.desk.basic.service.IRelTeamSetUserService; +import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; import org.springblade.desk.dashboard.pojo.entity.DsProcessMeasuringToolEntity; @@ -74,6 +79,13 @@ public class WorkPlanServiceImpl extends BaseServiceImpl wpList, List deleteIds) { if (wpList != null) { @@ -249,4 +261,36 @@ public class WorkPlanServiceImpl extends BaseServiceImpl