liweidong-hj 3 months ago
commit f1e82844fe
  1. 3
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/logistics/OrderBoxRefinement.java
  2. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemTaskBillVO.java
  3. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/PrMacTooUseSpec.java
  4. 15
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/TaskDataDto.java
  5. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
  6. 95
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/BindModelVO.java
  7. 44
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MacToolUseVO.java
  8. 12
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/UnBingDeviceVo.java
  9. 2
      blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClient.java
  10. 8
      blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClientFallback.java
  11. 7
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/feign/StGlassCakeOutClient.java
  12. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskBillController.java
  13. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java
  14. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/utils/AgvTaskTypeUtil.java
  15. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemTaskBillServiceImpl.java
  16. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java
  17. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java
  18. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.xml
  19. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml
  20. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java
  21. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java
  22. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java
  23. 30
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java
  24. 60
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java
  25. 91
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java
  26. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/RaiseHandController.java
  27. 51
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  28. BIN
      blade-service/blade-desk/src/main/resources/Excel/oem/外协特殊过程项导入模板.xls
  29. 6
      blade-service/blade-scheduling/pom.xml
  30. 12
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java
  31. 14
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java
  32. 3
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java
  33. 18
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml
  34. 8
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java
  35. 33
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java
  36. 21
      blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java
  37. 3
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml

@ -23,6 +23,7 @@ public class OrderBoxRefinement implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
client.monitoringStation();
return new ProcessResult(true);
log.info("执行完成了");
return new ProcessResult(true,"执行成功");
}
}

@ -32,6 +32,9 @@ public class OemTaskBillVO extends OemTaskBillEntity {
private String tbStatusName;
public String getTbStatusName() {
if (this.getTbStatus() == null) {
return "未处理"; // 或者返回其他默认值,如 "未知"
}
return this.getTbStatus() == 1 ? "已处理" : "未处理";
}
}

@ -16,7 +16,7 @@ public class PrMacTooUseSpec implements java.io.Serializable {
/**
* id
*/
private String mtuId;
private Long mtuId;
/**
* 零件号
*/

@ -0,0 +1,15 @@
package org.springblade.desk.produce.pojo.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import java.util.List;
@Data
public class TaskDataDto {
private String cdjArea;
private String pdjArea;
private String gjArea;
private List<ProduceMonitorSlotListVO> slotList;
}

@ -7,7 +7,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.desk.produce.pojo.dto.PrintChildCheck;
import org.springblade.desk.produce.pojo.dto.TaskDataDto;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import org.springblade.desk.quality.pojo.entity.AuditFile;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.WorkPlanItem;
@ -291,8 +293,8 @@ public class WorkPlan extends BaseEntity {
@Schema(description = "返工工艺Id")
@TableField(exist = false)
public Long rpId;
@TableField(exist = false)
private List<ProduceMonitorSlotListVO> slotList;
// @TableField(exist = false)
// private List<ProduceMonitorSlotListVO> slotList;
@TableField(exist = false)
private List<MesQcProduceRunEntity> prList;
@TableField(exist = false)
@ -334,5 +336,9 @@ public class WorkPlan extends BaseEntity {
private List<MesRbFilePreserveSlotEntity> dsRbFilePreserveSlotList;
@TableField(exist = false)
private List<PrintChildCheck> printChildCheck;
@TableField(exist = false)
private AuditFile auditFile;
@TableField(exist = false)
private TaskDataDto taskData;
}

@ -0,0 +1,95 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* 当前工序和挂具飞拔设备绑定数据模型 视图实体类
*
* @author BladeX
* @since 2026-02-04
*/
@Data
public class BindModelVO {
/**
* id
*/
@Schema(description = "id")
private Long id;
/**
* 车间订单号
*/
@Schema(description = "车间订单号")
private String woCode;
/**
* 镀种
*/
@Schema(description = "镀种")
private String plate;
/**
* 计划员
*/
@Schema(description = "计划员")
private String planUser;
/**
* 加工状态
*/
@Schema(description = "加工状态")
private String runStatus;
/**
* 批次号
*/
@Schema(description = "批次号")
private String batchNo;
/**
* 加工数量
*/
@Schema(description = "加工数量")
private Double makeQty;
/**
* 零件号
*/
@Schema(description = "零件号")
private String partCode;
/**
* 产品名称
*/
@Schema(description = "产品名称")
private String partName;
/**
* 班组
*/
@Schema(description = "班组")
private String makeTeam;
/**
* 当前工序号
*/
@Schema(description = "当前工序号")
private String orders;
/**
* 当前工序名称
*/
@Schema(description = "当前工序名称")
private String ppsName;
/**
* 下序工序号
*/
@Schema(description = "下序工序号")
private String nextOrders;
/**
* 下序名称
*/
@Schema(description = "下序名称")
private String nextPpsName;
/**
* 生产标识
*/
@Schema(description = "生产标识")
private String prodIdent;
/**
* 面积
*/
@Schema(description = "面积")
private Double area;
}

@ -0,0 +1,44 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 设备工装使用记录 视图实体类
*
* @author BladeX
* @since 2026-02-04
*/
@Data
public class MacToolUseVO {
@Schema(description = "使用记录ID")
private Long mtuId;
/**
* 零件号
*/
@Schema(description = "零件号")
private String partCode;
/**
* 批次号
*/
@Schema(description = "批次号")
private String batchNo;
/**
* 数量
*/
@Schema(description = "数量")
private String quantity;
/**
* 时间
*/
@Schema(description = "时间")
private String createTime;
/**
* 设备
*/
@Schema(description = "设备编号")
private String deviceCode;
}

@ -11,13 +11,13 @@ public class UnBingDeviceVo {
private List<PrMacTooUseSpec> list;
private String oneData;
private Date oneData;
private String twoData;
private String threeData;
private String fourData;
private String fiveData;
private String sixData;
private String sevenData;
private Date threeData;
private Date fourData;
private Date fiveData;
private Date sixData;
private Date sevenData;
private String dataFourteen;
private String tempSlot;

@ -50,8 +50,6 @@ public interface IWorkOrderClient {
@GetMapping(INIT_RESOURCE)
R<Void> initResource();
@GetMapping(GLASS_CAKE_ORDER)
R<IPage<WorkOrderVO>> selectGlassCakeOrderPage(GlassCakeOrderPageQuery glassCakeOrderPageQuery);
@PostMapping(GLASS_CAKE_QUALITY)
R<QualityGradeEntity> getById(@RequestBody Long id);

@ -25,12 +25,8 @@
*/
package org.springblade.scheduling.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.scheduling.pojo.entity.QualityGradeEntity;
import org.springblade.scheduling.pojo.vo.GlassCakeOrderPageQuery;
import org.springblade.scheduling.pojo.vo.WorkOrderVO;
import org.springframework.stereotype.Component;
import java.util.List;
@ -53,10 +49,6 @@ public class IWorkOrderClientFallback implements IWorkOrderClient {
return R.fail("初始化资源失败");
}
@Override
public R<IPage<WorkOrderVO>> selectGlassCakeOrderPage(GlassCakeOrderPageQuery glassCakeOrderPageQuery) {
return R.fail("获取玻璃饼订单失败");
}
@Override
public R<QualityGradeEntity> getById(Long id) {

@ -6,6 +6,7 @@ import org.springblade.wms.pojo.entity.StGlassCakeOut;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
@ -29,9 +30,9 @@ public interface StGlassCakeOutClient {
String GLASS_OUT_ORDER = API_PREFIX + "/generateOrder";
String GLASS_BATCH_OUT_ORDER = API_PREFIX + "/batchGenerateOrder";
@PostMapping("GLASS_OUT_ORDER")
@PostMapping(GLASS_OUT_ORDER)
R<List<StGlassCakeOut>> callGeneratePreOutOrder(@SpringQueryMap StGlassCakeOutDTO dto);
@PostMapping("GLASS_BATCH_OUT_ORDER")
R<Map<String, Object>> batchGeneratePreOutOrder(@SpringQueryMap List<StGlassCakeOutDTO> dtoList);
@PostMapping(GLASS_BATCH_OUT_ORDER)
R<Map<String, Object>> batchGeneratePreOutOrder(@RequestBody List<StGlassCakeOutDTO> dtoList);
}

@ -202,4 +202,14 @@ public class DsTaskBillController extends BladeController {
return R.data(bsFillingDetailService.listFillingDetail(busId,BsFillingDetailEntity.DS_TASK_BILL));
}
/**
* 外协任务单表 详情
*/
@GetMapping("/listOemFillingDetail")
@ApiOperationSupport(order = 12)
@Operation(summary = "外协任务单表", description = "传入dsTaskBill")
public R listOemFillingDetail(@RequestParam Long busId) {
return R.data(bsFillingDetailService.listFillingDetail(busId, BsFillingDetailEntity.OEM_PROCESS_TASK));
}
}

@ -90,7 +90,7 @@ public class OrderBindController {
summary = "根据流程卡号查询",
description = "根据流程卡号查询"
)
public R getCardNo(String cardNo) throws BusinessException {
public R getCardNo(@RequestParam String cardNo) throws BusinessException {
return iYieldOrderService.getCardNo(cardNo);
}

@ -48,11 +48,25 @@ public class AgvTaskTypeUtil {
log.info("起点楼层:{},终点楼层:{}", startFloor, endFloor);
// 场景4: 输送线起点(1002)或梳齿架 ---> 站点(二层) -> QM3
if ((isStartConveyorStart || (startFloor != null && startFloor == 1))
// if ((isStartConveyorStart || (startFloor != null && startFloor == 1))
// && endFloor != null && endFloor == 2) {
if (isStartConveyorStart
&& endFloor != null && endFloor == 2) {
log.info("起点(输送线起点/1层梳齿架)到二层站点任务,使用QM3");
return "QM3";
}
// 场景6: 站点1层 ---> 站点(三层) -> QM13
if ((startFloor != null && startFloor == 1)
&& endFloor != null && endFloor == 2) {
log.info("起点(1层梳齿架)到二层站点任务,使用QM13");
return "QM13";
}
// 场景7: 站点3层 ---> 站点(1层) -> QM31
if ((startFloor != null && startFloor == 2)
&& endFloor != null && endFloor == 1) {
log.info("起点(3层)到1层站点任务,使用QM31");
return "QM31";
}
// 场景1: 站点 <-----> 站点 -> QM
if (startFloor != null && endFloor != null) {

@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDate;
@ -98,6 +99,7 @@ public class OemTaskBillServiceImpl extends BaseServiceImpl<OemTaskBillMapper, O
}
@Override
@Transactional(rollbackFor = Exception.class)
public R handleOemTaskBill(HandleOemTaskBillEntity handleOemTaskBill) {
OemTaskBillEntity oemTaskBillEntity = baseMapper.selectById(handleOemTaskBill.getOtbId());
oemTaskBillEntity.setFillMemo(handleOemTaskBill.getFillMemo());
@ -105,8 +107,10 @@ public class OemTaskBillServiceImpl extends BaseServiceImpl<OemTaskBillMapper, O
baseMapper.updateById(oemTaskBillEntity);
//存入上次处理时间
OemSpecialProEntity oemSpecialProEntity = oemSpecialProMapper.selectById(oemTaskBillEntity.getSpId());
if (null != oemSpecialProEntity) {
oemSpecialProEntity.setLastDueTime(new Date());
oemSpecialProMapper.updateById(oemSpecialProEntity);
}
List<BsFillingDetailEntity> fillingDetailList = handleOemTaskBill.getFillingDetailList();
if (null != fillingDetailList && fillingDetailList.size() > 0) {
for (BsFillingDetailEntity fillingDetail : fillingDetailList) {

@ -5,24 +5,17 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
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.BindModelVO;
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
@ -42,9 +35,9 @@ public class PdaLoadController {
@GetMapping(value = "/loadBindData/{cardNo}")
@ApiOperationSupport(order = 1)
@Operation(summary = "加载绑定需要的流程卡数据", description = "传入cardNo")
public R<WorkPlan> loadBindData(@PathVariable String cardNo) {
return R.data(pdaLoadService.loadBindData(AuthUtil.getUserId(), cardNo));
@Operation(summary = "根据流程卡号数据", description = "传入cardNo")
public R<BindModelVO> loadBindData(@PathVariable String cardNo) {
return R.data(pdaLoadService.loadBindData(1297L, cardNo));
}
@GetMapping(value = "/getBsRackSetByCode/{rsCode}")
@ -55,18 +48,12 @@ public class PdaLoadController {
}
@GetMapping(value = "/getBsFeiBaSetByCode/{fsCode}")
@ApiOperationSupport(order = 3)
@Operation(summary = "根据飞靶编码查询数据", description = "fsCode")
public R<FeiBaSetEntity> getBsFeiBaSetByCode(@PathVariable String fsCode) {
return R.data(pdaLoadService.getBsFeiBaSetByCode(fsCode));
}
@GetMapping(value = "/getBsFeiBaSetByCodeUn/{fsCode}")
@ApiOperationSupport(order = 3)
@Operation(summary = "根据挂具编码查询数据(解绑)", description = "传入fsCode")
public R<FeiBaSetEntity> getBsFeiBaSetByCodeUn(@PathVariable String fsCode) {
return R.data(pdaLoadService.getBsFeiBaSetByCode(fsCode));
}
@GetMapping(value = "/getEcByDeviceCode/{deviceCode}")
@ApiOperationSupport(order = 4)
@Operation(summary = "根据设备编码查询数据", description = "传入deviceCode")
@ -111,7 +98,7 @@ public class PdaLoadController {
}
@GetMapping(value = "/getHangNum")
@ApiOperationSupport(order = 7)
@ApiOperationSupport(order = 10)
@Operation(summary = "根据设备编号获取挂次号", description = "")
public R<List<JSONObject>> getHangNum(@RequestParam String deviceCode) {
return R.data(pdaLoadService.getHangNum(deviceCode));

@ -1,22 +1,22 @@
package org.springblade.desk.produce.controller;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.MacToolUseVO;
import org.springblade.desk.produce.pojo.vo.SjEcBingCardVo;
import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo;
import org.springblade.desk.produce.pojo.vo.UnBingVo;
import org.springblade.desk.produce.service.IPdaSaveService;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @ClassName PdaLoadController
* @Description: 手持移动端数据查询接口
@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequiredArgsConstructor
@RequestMapping("/pdaSave")
@Tag(name = "手持移动端数据查询接口", description = "接口")
@Tag(name = "手持移动端数据保存接口", description = "接口")
public class PdaSaveController {
private final IPdaSaveService pdaSaveService;
@ -98,6 +98,13 @@ public class PdaSaveController {
return R.success();
}
@Operation(summary = "设备解绑")
@PostMapping("/unBind")
public R unBind(@RequestBody UnBingVo unBingVo) {
pdaSaveService.unBind(unBingVo);
return R.success();
}
@Operation(summary = "烧结流程卡与设备绑定")
@PostMapping("/sjEcBindingCard")
public R sjEcBindingCard(@RequestBody SjEcBingCardVo sjEcBingCardVo) {
@ -105,16 +112,9 @@ public class PdaSaveController {
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) {
public R<List<MacToolUseVO>> getUnbindByCard(@RequestParam(value = "cardNo") String cardNo) {
return R.data(pdaSaveService.getUnbindByCard(cardNo));
}

@ -62,7 +62,9 @@
INNER JOIN MES_WORK_PLAN b ON a.NEXT_WP_ID = b.ID
INNER JOIN MES_WORK_ORDER c ON a.WO_ID = c.ID
<where>
a.status = 3 and c.ID = #{id} and b.next_wp_id > 0 and (a.make_team in
a.status = 3 and c.ID = #{id} and b.next_wp_id > 0
<if test="tsIds != null and tsIds.size() > 0">
and (a.make_team in
<foreach collection="tsIds" item="tsId" open="(" separator="," close=")">
#{tsId}
</foreach>
@ -70,7 +72,9 @@
<foreach collection="tsIds" item="tsId" open="(" separator="," close=")">
#{tsId}
</foreach>
or c.dispatcher= #{userId}) and c.run_status = 3
or c.dispatcher= #{userId})
</if>
and c.run_status = 3
</where>
</select>
<select id="getBeforePlatOutCardNo" resultType="org.springblade.desk.produce.pojo.entity.PlateAround">

@ -243,7 +243,7 @@
<select id="getDataByWpIdAndIndexList" resultType="org.springblade.desk.produce.pojo.entity.MacToolUse">
select a.* from MES_MAC_TOOL_USE a
left join MES_WORK_PLAN wp on a.WP_ID = wp.ID
where wp.Id=#{wpId} and a.mtu_index=#{indexNum} order by a.Id
where a.WP_ID=#{wpId} and a.mtu_index=#{indexNum} order by a.Id
</select>
<select id="getDataByWpIdAndIndex" resultType="org.springblade.desk.produce.pojo.entity.MacToolUse">

@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.entity.MacToolUse;
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import java.util.List;
@ -62,4 +64,6 @@ public interface IMacToolUseService extends BaseService<MacToolUse> {
* 根据条件查询绑定的流程卡信息
*/
List<MacToolUse> listByParams(Long rsId, Long fsId, Long ecId, String hangNum);
List<MacToolUseVO> queryByWpId(WorkOrder prWorkOrder);
}

@ -2,14 +2,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.BindModelVO;
import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO;
import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
@ -31,7 +30,7 @@ public interface IPdaLoadService extends BaseService<WorkPlan> {
* @param cardNo 卡号
* @return org.springblade.desk.produce.pojo.entity.WorkPlan
*/
WorkPlan loadBindData(Long userId, String cardNo);
BindModelVO loadBindData(Long userId, String cardNo);
/**
* <p>方法名: getBsRackSetByCode </p>
* <p>方法描述: 根据挂具编码查询数据 </p>

@ -6,6 +6,7 @@ import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.dto.ShiftTransferDTO;
import org.springblade.desk.produce.pojo.entity.MacToolUse;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO;
import org.springblade.desk.produce.pojo.vo.SjEcBingCardVo;
import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo;
import org.springblade.desk.produce.pojo.vo.UnBingVo;
@ -45,7 +46,7 @@ public interface IPdaSaveService extends BaseService<WorkPlan> {
*/
void unBind(UnBingVo unBingVo);
List<MacToolUse> getUnbindByCard(String cardNo);
List<MacToolUseVO> getUnbindByCard(String cardNo);
/**
* <p>方法名: sjDeviceUnBind </p>
* <p>方法描述: 烧结设备解绑 </p>

@ -1,5 +1,6 @@
package org.springblade.desk.produce.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@ -16,7 +17,9 @@ import org.springblade.desk.device.service.IRackSetService;
import org.springblade.desk.produce.mapper.MacToolUseMapper;
import org.springblade.desk.produce.pojo.entity.MacToolUse;
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import org.springblade.desk.produce.service.IMacToolUseService;
import org.springframework.stereotype.Service;
@ -162,6 +165,33 @@ public class MacToolUseServiceImpl extends BaseServiceImpl<MacToolUseMapper, Mac
.eq(StringUtils.isNotBlank(hangNum), MacToolUse::getHangNum, hangNum));
}
@Override
public List<MacToolUseVO> queryByWpId(WorkOrder prWorkOrder) {
List<MacToolUseVO> macToolUseVos = new ArrayList<>();
List<MacToolUse> prMacToolUseList = this.list(Wrappers.lambdaQuery(MacToolUse.class)
.eq(MacToolUse::getFinished, 0).eq(MacToolUse::getBindType, "sj").like(MacToolUse::getMtnCode, "SJ-")
.inSql(MacToolUse::getEquipmentCard, "SELECT EQUIPMENT_CARD FROM MES_MAC_TOOL_USE WHERE WP_ID = " + prWorkOrder.getWpId()));
MacToolUseVO macToolUseVO;
// 将prMacToolUseList的equipmentCard转换为List并去掉空值
List<Long> equipmentCardList = prMacToolUseList.stream().map(MacToolUse::getEquipmentCard).filter(Objects::nonNull).toList();
List<EquipmentEntity> equipmentEntities = equipmentService.listByIds(equipmentCardList);
// 转换为map
Map<Long, EquipmentEntity> equipmentMap = equipmentEntities.stream().collect(Collectors.toMap(EquipmentEntity::getId, v -> v));
if (CollectionUtils.isNotEmpty(prMacToolUseList)) {
for (MacToolUse prMacToolUse : prMacToolUseList) {
macToolUseVO = new MacToolUseVO();
macToolUseVO.setMtuId(prMacToolUse.getId());
macToolUseVO.setPartCode(prWorkOrder.getPartCode());
macToolUseVO.setBatchNo(prWorkOrder.getBatchNo());
macToolUseVO.setQuantity(prWorkOrder.getMakeQty().toString());
macToolUseVO.setDeviceCode(equipmentMap.get(prMacToolUse.getEquipmentCard()).getDeviceCode());
macToolUseVO.setCreateTime(prMacToolUse.getCreateTime() == null ? "" : DateUtil.format(prMacToolUse.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
macToolUseVos.add(macToolUseVO);
}
}
return macToolUseVos;
}
public static final int time2Integer(Date d) {
Calendar cal = Calendar.getInstance();
cal.setTime(d);

@ -24,6 +24,8 @@ 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.entity.*;
import org.springblade.desk.produce.pojo.enums.WorkOrderEnum;
import org.springblade.desk.produce.pojo.vo.BindModelVO;
import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO;
import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO;
import org.springblade.desk.produce.service.*;
@ -77,8 +79,6 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
private final CraftAbilityMapper craftAbilityMapper;
private final WorkPlanMapper workPlanMapper;
private final IWorkPlanService workPlanService;
private final ICenterTeamService centerTeamService;
@ -89,9 +89,47 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
private String prefixId;
@Override
public WorkPlan loadBindData(Long userId, String cardNo) {
WorkPlan prWorkPlan = this.getCurrentWorkPlan(cardNo, userId, false, false);
return prWorkPlan;
public BindModelVO loadBindData(Long userId, String cardNo) {
WorkPlan workPlan = this.getCurrentWorkPlan(cardNo, userId, false, false);
return this.createBindModel(workPlan);
}
/**
* 创建加载流程卡与挂具飞拔设备数据
*/
private BindModelVO createBindModel(WorkPlan workPlan) {
WorkPlan nextWorkPlan = this.getById(workPlan.getNextWpId());
WorkOrder workOrder = workOrderService.getById(workPlan.getWoId());
YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
BsProcessSetEntity processSet = bsProcessSetService.getById(workPlan.getPpsId());
BindModelVO bindModel = new BindModelVO();
bindModel.setId(workPlan.getId());
bindModel.setWoCode(workOrder.getWoCode());
bindModel.setRunStatus(WorkOrderEnum.getName(workOrder.getRunStatus()));
bindModel.setPlanUser(yieldOrder.getPlanUser());
bindModel.setPlate(yieldOrder.getPlate());
bindModel.setPartCode(yieldOrder.getPartCode());
bindModel.setPartName(yieldOrder.getPartName());
bindModel.setBatchNo(workOrder.getBatchNo());
bindModel.setMakeQty(workOrder.getMakeQty());
bindModel.setArea(yieldOrder.getYpArea());
if (workPlan.getSubsidiaryTeam() != null) {
BsTeamSetEntity teamSetEntity = bsTeamSetService.getById(workPlan.getSubsidiaryTeam());
bindModel.setMakeTeam(teamSetEntity.getTsName());
} else if (workPlan.getMakeTeam() != null) {
BsTeamSetEntity teamSetEntity = bsTeamSetService.getById(workPlan.getMakeTeam());
bindModel.setMakeTeam(teamSetEntity.getTsName());
}
bindModel.setOrders(workPlan.getOrders());
bindModel.setProdIdent(yieldOrder.getProductIdent());
bindModel.setPpsName(processSet.getName());
bindModel.setNextOrders(nextWorkPlan != null ? nextWorkPlan.getOrders() : null);
if (nextWorkPlan != null) {
BsProcessSetEntity nextProcessSet = bsProcessSetService.getById(nextWorkPlan.getPpsId());
bindModel.setNextPpsName(nextProcessSet.getName());
}
return bindModel;
}
@Override
@ -210,11 +248,11 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
//获取当前登录人班组
List<Long> tsIds = relTeamSetUserService.getTeamId(userId);
//获取作业计划
WorkPlan workPlan = workPlanService.getById(prWorkOrder.getWpId());
WorkPlan workPlan = this.getById(prWorkOrder.getWpId());
//获取当前工序的下序
WorkPlan nextPrWorkPlan = workPlanService.getById(workPlan.getNextWpId());
WorkPlan nextPrWorkPlan = this.getById(workPlan.getNextWpId());
//获取当前工序的上序
WorkPlan frontPrWorkPlan = workPlanService.getById(workPlan.getFrontWpId());
WorkPlan frontPrWorkPlan = this.getById(workPlan.getFrontWpId());
//如果是最后一道工序(当前序下序为空或者下序的下序为空)
if (nextPrWorkPlan == null || nextPrWorkPlan.getNextWpId() == null) {
//如果是镀后入库则不验证
@ -322,7 +360,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
@Override
public List<JSONObject> getHangNum(String deviceCode) {
List<JSONObject> objectList = new ArrayList<>();
if (deviceCode.contains(prefixId)) {
if (deviceCode.contains("9651538")) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("label", "钝化专用");
jsonObject.put("value", -1);
@ -363,7 +401,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
.eq(WorkPlan::getCruxProcess, "1")
.orderByDesc(WorkPlan::getOrders);
WorkPlan prWorkPlan = workPlanMapper.selectOne(lambdaQueryWrapper);
WorkPlan prWorkPlan = baseMapper.selectOne(lambdaQueryWrapper);
if (prWorkPlan != null && prWorkPlan.getId() != null) {
if (prWorkPlan.getOcId() != null) {
wp.setOcId(prWorkPlan.getOcId());
@ -374,7 +412,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
}
}
workPlanMapper.insertOrUpdate(wpList);
baseMapper.insertOrUpdate(wpList);
}
private WorkOrder checkWo(String cardNo) {

@ -31,6 +31,7 @@ import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.dto.PrMacTooUseSpec;
import org.springblade.desk.produce.pojo.dto.ShiftTransferDTO;
import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO;
import org.springblade.desk.produce.pojo.vo.SjEcBingCardVo;
import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo;
import org.springblade.desk.produce.pojo.vo.UnBingVo;
@ -40,10 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -78,7 +76,10 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
private final IBsAdditionalMessService bsAdditionalMessService;
private final IDsPartService dsPartService;
@Override
@Transactional(rollbackFor = Exception.class)
public void bindingCard(DeviceBindDTO deviceBindDTO) {
Long rsId = deviceBindDTO.getRsId();
Long fsId = deviceBindDTO.getFsId();
@ -122,6 +123,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
//处理绑定信息
WorkPlan workPlan;
MacToolUse mtu;
Date date = new Date();
List<WorkPlan> workPlans = this.listByIds(planListIds);
// stream流将workPlans按照ID转换为map
Map<Long, WorkPlan> workPlanMap = workPlans.stream().collect(Collectors.toMap(WorkPlan::getId, wp -> wp));
@ -129,7 +131,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
workPlan = workPlanMap.get(planId);
mtu = new MacToolUse();
mtu.setWpId(planId);
this.packageMtu(mtu, rsId, fsId, ecId, code);
this.packageMtu(mtu, rsId, fsId, ecId, code, date);
macToolUseService.save(mtu);
//修改作业计划绑定状态为绑定
workPlan.setBindStatus(WorkPlan.BIND_STATUS_BIND);
@ -179,6 +181,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
@Override
@Transactional(rollbackFor = Exception.class)
public void binding(DeviceBindDTO deviceBindDTO) {
Long fsId = deviceBindDTO.getFsId();
Long ecId = deviceBindDTO.getEcId();
@ -190,9 +193,9 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
//获取同槽号
String code = null;
FeiBaSetEntity feiBaSet = this.getFeiBaSetByFsId(fsId);
Date date = new Date();
//挂具集合不为空,则代表是挂具相关绑定,反之则是飞靶绑定设备
if (rsListIds != null) {
if (CollectionUtils.isNotEmpty(rsListIds)) {
if (fsId != null) {
code = macToolUseService.findMaxCodeByParams(null, fsId);
//修改飞靶状态
@ -223,7 +226,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
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);
this.packageMtu(mtu, rsId, fsId, ecId, code, date);
}
macToolUseService.updateBatchById(mtuLst);
// 存储同槽额外面积
@ -257,7 +260,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
}
mtu.setHangNum(deviceBindDTO.getHangNum());
this.packageMtu(mtu, mtu.getBsRackSet(), fsId, ecId, code);
this.packageMtu(mtu, mtu.getBsRackSet(), fsId, ecId, code, date);
}
} else {
// 开始绑定
@ -266,7 +269,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
newMtu = new MacToolUse();
newMtu.setWpId(mtu.getWpId());
// 直接共享产线设备的同槽(烘箱)
this.packageMtu(newMtu, mtu.getBsRackSet(), null, mtu.getEquipmentCard(), mtu.getMtnCode());
this.packageMtu(newMtu, mtu.getBsRackSet(), null, mtu.getEquipmentCard(), mtu.getMtnCode(), date);
macToolUseService.save(newMtu);
//标识绑定记录状态为解绑
@ -283,11 +286,13 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
}
private void packageMtu(MacToolUse mtu, Long rsId, Long fsId, Long ecId, String code) {
private void packageMtu(MacToolUse mtu, Long rsId, Long fsId, Long ecId, String code, Date date) {
mtu.setMtnCode(code);
mtu.setBsRackSet(rsId);
mtu.setBsFeiBaSet(fsId);
mtu.setEquipmentCard(ecId);
mtu.setBindTime(date);
mtu.setCreateMan(AuthUtil.getUserId());
}
@Override
@ -330,7 +335,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
String deviceCode = mtu.getEquipmentCard() != null ? mtu.getMtnCode() : "";
log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:sjBindingCard(),{}", deviceCode, mtu.getHangNum(), mtu.getMtnCode(), mtu.getFinished());
}
this.packageMtu(mtu, null, null, equipment.getId(), code);
this.packageMtu(mtu, null, null, equipment.getId(), code, nowDate);
mtuList.add(mtu);
//修改作业计划绑定状态为绑定
workPlan.setBindStatus(WorkPlan.BIND_STATUS_BIND);
@ -419,62 +424,64 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
//更新飞靶下挂具相关信息
this.unBindBsRackSet(bsRackSet);
}
}
@Override
public List<MacToolUse> getUnbindByCard(String cardNo) {
public List<MacToolUseVO> getUnbindByCard(String cardNo) {
WorkOrder prWorkOrder = workOrderService.getWorkOrderByCardNo(cardNo);
if (prWorkOrder == null) {
throw new ServiceException("未找到对应的订单");
}
return macToolUseService.list(Wrappers.<MacToolUse>lambdaQuery().eq(MacToolUse::getWpId, prWorkOrder.getWpId()));
return macToolUseService.queryByWpId(prWorkOrder);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void sjDeviceUnBind(UnBingDeviceVo unBingDeviceVo) {
for (PrMacTooUseSpec prMacTooUseSpec : unBingDeviceVo.getList()) {
MacToolUse prMacToolUse = macToolUseService.getById(Long.valueOf(prMacTooUseSpec.getMtuId()));
WorkPlan prWorkPlan = baseMapper.selectById(prMacToolUse.getWpId());
prWorkPlan.setBindStatus(WorkPlan.BIND_STATUS_FREE);
baseMapper.updateById(prWorkPlan);
List<PrMacTooUseSpec> macTooUseSpecList = unBingDeviceVo.getList();
Date oneData = unBingDeviceVo.getOneData();
String tempSlot = unBingDeviceVo.getTempSlot();
String twoData = unBingDeviceVo.getTwoData();
Date threeData = unBingDeviceVo.getThreeData();
String dataFourteen = unBingDeviceVo.getDataFourteen();
// macTooUseSpecList的mtuId转换为list
List<MacToolUse> macToolUses = macToolUseService.listByIds(macTooUseSpecList.stream().map(PrMacTooUseSpec::getMtuId).toList());
List<WorkPlan> workPlans = this.listByIds(macToolUses.stream().map(MacToolUse::getWpId).filter(Objects::nonNull).collect(Collectors.toList()));
if (CollectionUtils.isNotEmpty(workPlans)) {
workPlans.forEach(workPlan -> workPlan.setBindStatus(WorkPlan.BIND_STATUS_FREE));
this.updateBatchById(workPlans);
}
for (MacToolUse macToolUse : macToolUses) {
List<MesQcProduceRunEntity> qcProduceRuns = mesQcProduceRunService.list(Wrappers.<MesQcProduceRunEntity>lambdaQuery().
eq(MesQcProduceRunEntity::getMtnCode, prMacToolUse.getMtnCode()));
eq(MesQcProduceRunEntity::getMtnCode, macToolUse.getMtnCode())
.and(q -> q.notLike(MesQcProduceRunEntity::getWorkSlot, "入料区").or().isNull(MesQcProduceRunEntity::getWorkSlot)));
if (qcProduceRuns == null || qcProduceRuns.size() == 0) {
if (CollectionUtils.isEmpty(qcProduceRuns)) {
continue;
}
if (qcProduceRuns != null && qcProduceRuns.size() > 0) {
for (MesQcProduceRunEntity qcProduceRun : qcProduceRuns) {
qcProduceRun.setOutDate(DateUtil.now());
if (unBingDeviceVo.getOneData() != null) {
if (oneData != null) {
qcProduceRun.setDataThirteen(DateUtil.now()); // 保温开始时间
}
if (unBingDeviceVo.getThreeData() != null) {
if (threeData != null) {
qcProduceRun.setDataTwelve(DateUtil.now()); // 保温结束时间
}
qcProduceRun.setTempSlot(unBingDeviceVo.getTempSlot()); // 退火温度
qcProduceRun.setDataFourteen(unBingDeviceVo.getDataFourteen()); // 退火温度
qcProduceRun.setDataTwo(unBingDeviceVo.getTwoData()); // 保温温度
qcProduceRun.setTempSlot(tempSlot); // 退火温度
qcProduceRun.setDataFourteen(dataFourteen); // 退火温度
qcProduceRun.setDataTwo(twoData); // 保温温度
mesQcProduceRunService.updateById(qcProduceRun);
// 获取设备所需参数
// 如果没有填写退火温度
if (StringUtils.isBlank(unBingDeviceVo.getTempSlot())) {
// macToolUseService.setSjDataCapture(qcProduceRun, Boolean.TRUE); //todo
if (StringUtils.isBlank(tempSlot)) {
// todo 第三方获取
// macToolUseService.setSjDataCapture(qcProduceRun, Boolean.TRUE);
}
}
mesQcProduceRunService.updateBatchById(qcProduceRuns);
macToolUse.setFinished(1);
}
prMacToolUse.setFinished(1);
String deviceCode = prMacToolUse.getEquipmentCard() != null ? prMacToolUse.getMtnCode() : "";
log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:sjDeviceUnBind(),{}", deviceCode, prMacToolUse.getHangNum(), prMacToolUse.getMtnCode(), prMacToolUse.getFinished());
macToolUseService.updateById(prMacToolUse);
}
macToolUseService.updateBatchById(macToolUses);
}
@Override
@ -484,7 +491,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
this.completeOrder(rr, AuthUtil.getUserName());
}
String memo = "";
List<PrReworkProcessEntity> rpList = listByReworkCode(rr.getRedono(), rr.getSeqno(), rr.getPrtno(), rr.getSplcode());
List<PrReworkProcessEntity> rpList = dsPartService.selectReworkPartCraft(rr.getPrtno(), rr.getRedono(), rr.getSplcode(), String.valueOf(rr.getSeqno()));
if (rpList == null && rpList.size() == 0) {
//修改erp返工单工艺状态为无工艺
//prReworkProcessDao.receiveOrder(rr, user.getLdapName(), 0);

@ -190,6 +190,13 @@ public class RaiseHandController extends BladeController {
IPage<RaiseHand> pages = service.page(Condition.getPage(query), qw);
IPage<RaiseHandVO> pagesVO = RaiseHandWrapper.build().pageVO(pages);
List<RaiseHandVO> listVO = pagesVO.getRecords();
for(RaiseHandVO vo : listVO){
R<User> user = userClient.userInfoById(vo.getReportUserId());
if(null != user && null != user.getData()){
vo.setReportUserName(user.getData().getRealName());
}
}
return R.data(pagesVO);
}
@ -362,7 +369,7 @@ public class RaiseHandController extends BladeController {
@ApiOperationSupport(order = 61)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(service.deleteLogic(Func.toLongList(ids)));
return R.status(service.removeByIds(Func.toLongList(ids)));
}
/**

@ -51,6 +51,7 @@ import org.springblade.desk.produce.mapper.WorkPlanMapper;
import org.springblade.desk.produce.pojo.dto.MesRbFilePreserveDetailDTO;
import org.springblade.desk.produce.pojo.dto.PrintChildCheck;
import org.springblade.desk.produce.pojo.dto.PrintChildCheckChild;
import org.springblade.desk.produce.pojo.dto.TaskDataDto;
import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import org.springblade.desk.produce.service.IMesEquipmentCardService;
@ -479,6 +480,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// 生产过程(放在获取检验记录下面,这个方法会排除数据)
this.getNewProcess(wpList, jsonObj, planList);
jsonObj.put("modelTwo", wpList);
if (moduleList.get(3)) {
// 审理单记录
// PrWorkOrder wor = this.getByKey(woId);
@ -517,7 +519,19 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
}
@Resource
private IAuditFileService auditFileService;
public void getProcessByWp(WorkPlan workPlan) {
QueryWrapper<AuditFile> qw = new QueryWrapper<>();
qw.eq("WC_ID", workPlan.getId());
List<AuditFile> auditFileList = auditFileService.list(qw);
if(auditFileList != null && auditFileList.size() > 0){
workPlan.setAuditFile(auditFileList.get(0));
}
MesQcProduceRunEntity box = null;
// 生产追溯数据(从生产追溯表中获取)
if (WorkPlan.PRINT_TYPE_PROCESS.equals(workPlan.getPrintType())) {
@ -542,8 +556,15 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
slotList = workPlanMapper.listSlotInfoList(workPlan.getId(), Boolean.FALSE);
}
}
TaskDataDto dto = new TaskDataDto();
//未取得数据
// dto.setGjArea();
// dto.setCdjArea();
// dto.setPdjArea();
dto.setSlotList(slotList);
// 2025-07-23 线上迁移修改 删除了prMacToolUseService.listSlotInfo方法调用
workPlan.setSlotList(slotList);
workPlan.setTaskData(dto);
}
// 设备编号信息(从设备,工装使用记录获取)
List<MacToolUse> mtuList = workPlanMapper.listMacToolUse(workPlan.getId(), Boolean.FALSE);
@ -791,9 +812,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
}
workPlan.setDsRbFilePreserveSlotList(dsRbFilePreserveSlotList);
workPlan.setQcProduceRunsList(qcProduceRunsList);
}
// workPlan.setQcProduceRunsList(qcProduceRunsList);
}
public void setRbFilePreserveData(List<MesRbFilePreserveSlotEntity> preserveSlotList, List<MesQcProduceRunEntity> qcProduceRunsList,
@ -1598,8 +1620,11 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
return checkList;
}
@Override
public Object pagePrintSjEleFiles(Long woId, Integer yieldType, List<Boolean> planList, List<Boolean> moduleList) {
if (yieldType == YieldOrder.YIELD_TYPE_4 || yieldType == YieldOrder.YIELD_TYPE_5) {
return this.metalParts(woId);
} else if (yieldType == YieldOrder.YIELD_TYPE_6) { // 石墨模
@ -1629,14 +1654,28 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
List<WorkPlanItem> prWorkPlanItems;
List<PrintChildCheck> printChildCheckList = new ArrayList<>();
for (WorkPlan prWorkPlan : prWorkPlanList) {
QueryWrapper<AuditFile> qw = new QueryWrapper<>();
qw.eq("WC_ID", prWorkPlan.getId());
List<AuditFile> auditFileList = auditFileService.list(qw);
if(auditFileList != null && auditFileList.size() > 0){
prWorkPlan.setAuditFile(auditFileList.get(0));
}
// 同槽信息
List<ProduceMonitorSlotListVO> slotList = workPlanMapper.listSjSlotInfoMes(prWorkPlan.getId(), Boolean.FALSE);
prWorkPlan.setSlotList(slotList);
// prWorkPlan.setSlotList(slotList);
TaskDataDto dto = new TaskDataDto();
//未取得数据
// dto.setGjArea();
// dto.setCdjArea();
// dto.setPdjArea();
dto.setSlotList(slotList);
// 2025-07-23 线上迁移修改 删除了prMacToolUseService.listSlotInfo方法调用
prWorkPlan.setTaskData(dto);
// 设备绑定记录
List<MesQcProduceRunEntity> prList = workPlanMapper.listPrByWpId(prWorkPlan.getId());
prWorkPlan.setPrList(prList);
List<MesQcProduceRunEntity> qcProduceRunsList = workPlanMapper.listPrByWpId(prWorkPlan.getId());
prWorkPlan.setQcProduceRunsList(qcProduceRunsList);
prWorkPlanItems = workPlanMapper.listByWpIdMes(prWorkPlan.getId());
if (prWorkPlanItems != null && prWorkPlanItems.size() > 0) {

@ -45,6 +45,12 @@
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-wms-api</artifactId>
<version>4.6.0.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

@ -319,4 +319,16 @@ public class WorkOrderController extends BladeController {
return R.data(pages);
}
/**
* 工序执行分析明细 自定义分页
*/
@GetMapping("/test")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入WorkOrder")
public R test(WorkPlanVO workPlan, Query query) {
workOrderService.test();
return R.success();
}
}

@ -27,20 +27,14 @@ package org.springblade.scheduling.scheduling.feign;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Hidden;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.scheduling.feign.IWorkOrderClient;
import org.springblade.scheduling.pojo.entity.QualityGradeEntity;
import org.springblade.scheduling.pojo.vo.GlassCakeOrderPageQuery;
import org.springblade.scheduling.pojo.vo.WorkOrderVO;
import org.springblade.scheduling.scheduling.service.IEquipResourceService;
import org.springblade.scheduling.scheduling.service.IPersonResourceService;
import org.springblade.scheduling.scheduling.service.IQualityGradeService;
@ -87,14 +81,6 @@ public class WorkOrderClient implements IWorkOrderClient {
return R.success();
}
@Override
public R<IPage<WorkOrderVO>> selectGlassCakeOrderPage(GlassCakeOrderPageQuery glassCakeOrderPageQuery) {
Query query = new Query();
query.setCurrent(glassCakeOrderPageQuery.getCurrent());
query.setSize(glassCakeOrderPageQuery.getSize());
WorkOrderVO workOrder = new WorkOrderVO();
return R.data(workOrderService.selectGlassCakeOrderPage(Condition.getPage(query), workOrder));
}
@Override
public R<QualityGradeEntity> getById(Long id) {

@ -80,9 +80,6 @@ public interface WorkOrderMapper extends BaseMapper<WorkOrderEntity> {
List<String> selectTeamMember(@Param("teamId") Long teamId,@Param("certificateId") Long certificateId);
List<WorkOrderVO> selectGlassCakeOrderPage(IPage page, WorkOrderVO workOrder);
List<WorkPlanVO> selectQuaExecuteAnalysisPage(IPage page, WorkPlanVO workPlan);
List<WorkPlanVO> selectCenterExecuteList(WorkPlanVO workPlan);

@ -299,23 +299,7 @@
AND ct.id = #{certificateId}
</select>
<select id="selectGlassCakeOrderPage" resultType="org.springblade.scheduling.pojo.vo.WorkOrderVO">
SELECT
a.WO_CODE as "woCode",
a.part_code as "partCode",
c.part_name as "partName",
b.batch_no as "batchNo",
b.card_no as "cardNo",
a.make_qty as "makeQty",
c.is_print as "isPrint",
c.POWDER_WEIGHT as "powderWeight"
FROM
MES_WORK_ORDER a
LEFT JOIN MES_YIELD_ORDER b ON a.YO_ID = b.ID
LEFT JOIN DS_PART c ON a.part_code = c.part_code
WHERE
b.YIELD_TYPE = 12003
</select>
<select id="selectQuaExecuteAnalysisPage" resultType="org.springblade.scheduling.scheduling.vo.WorkPlanVO">
SELECT

@ -28,12 +28,11 @@ package org.springblade.scheduling.scheduling.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.scheduling.scheduling.dto.WorkOrderDto;
import org.springblade.scheduling.pojo.entity.WorkOrderEntity;
import org.springblade.scheduling.pojo.vo.WorkOrderVO;
import org.springblade.scheduling.scheduling.dto.WorkOrderDto;
import org.springblade.scheduling.scheduling.excel.SchedulingBoardExcel;
import org.springblade.scheduling.scheduling.excel.WorkOrderExcel;
import org.springblade.scheduling.pojo.vo.WorkOrderVO;
import org.springblade.scheduling.scheduling.vo.WorkPlanVO;
import java.util.List;
@ -98,7 +97,6 @@ public interface IWorkOrderService extends BaseService<WorkOrderEntity> {
*/
void receiveDispatcherFromOldMes(Long id, Long userId);
IPage<WorkOrderVO> selectGlassCakeOrderPage(IPage<WorkOrderVO> page, WorkOrderVO workOrder);
/**
@ -118,4 +116,6 @@ public interface IWorkOrderService extends BaseService<WorkOrderEntity> {
IPage<WorkPlanVO> selectProcessExecuteDetailPage(IPage<WorkPlanVO> page, WorkPlanVO workPlan);
void test();
}

@ -57,6 +57,8 @@ import org.springblade.scheduling.scheduling.service.*;
import org.springblade.scheduling.scheduling.vo.PersonAbilityVO;
import org.springblade.scheduling.scheduling.vo.SameTroughVO;
import org.springblade.scheduling.scheduling.vo.WorkPlanVO;
import org.springblade.wms.feign.StGlassCakeOutClient;
import org.springblade.wms.pojo.dto.StGlassCakeOutDTO;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -103,6 +105,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private final ICraftAbilityService craftAbilityService;
private final IPartVersionService partVersionService;
private final IPartRelationService partRelationService;
private final StGlassCakeOutClient glassCakeOutClient;
@Value("${business.oldMes.url}")
private String oldMesUrl;
@ -408,6 +411,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
Map<Long, List<SintTempCurveEntity>> sintMap,
Map<Long, String> workCenterMap,
Map<Long, String> craftAbilityMap) {
List<StGlassCakeOutDTO> glassCakeOutList = new ArrayList<>();
List<WorkOrderEntity> workOrderList = new ArrayList<>();
list = mergeYieldOrderList(list);
LocalDateTime localDateTime = LocalDateTime.now();
@ -875,6 +879,15 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
order.setErrorInfo(null);
yieldOrderService.updateById(order);
workOrderList.add(workOrder);
if(order.getYieldType() == YieldOrderEnum.YIELD_TYPE_3.getCode()){
StGlassCakeOutDTO glassDto = new StGlassCakeOutDTO();
glassDto.setPrintMark("1".equals(part.getIsPrint()) ? false : true);
glassDto.setPowderWeight(part.getPowderWeight().toString());
glassDto.setMaterialNo(part.getMaterial());
glassDto.setThickness(part.getFormingThickness().toString());
glassCakeOutList.add(glassDto);
}
}
} catch (Exception e) {
log.error("报错订单是:" + order.getId() + ",报错信息是:" + e.getMessage());
@ -882,6 +895,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
}
if(CollectionUtils.isNotEmpty(glassCakeOutList)){
glassCakeOutClient.batchGeneratePreOutOrder(glassCakeOutList);
}
if (CollectionUtils.isNotEmpty(workOrderList)) {
this.sendWorkOrderToOldMes(workOrderList);
}
@ -1596,11 +1612,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return map;
}
@Override
public IPage<WorkOrderVO> selectGlassCakeOrderPage(IPage<WorkOrderVO> page, WorkOrderVO workOrder) {
return page.setRecords(baseMapper.selectGlassCakeOrderPage(page, workOrder));
}
@Override
public void saveWorkOrderFromBak(String cardNo) {
@ -1709,6 +1720,18 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return page.setRecords(list);
}
@Override
public void test() {
List<StGlassCakeOutDTO> list = new ArrayList<>();
StGlassCakeOutDTO glassDto = new StGlassCakeOutDTO();
glassDto.setPrintMark(false);
glassDto.setPowderWeight("1");
glassDto.setMaterialNo("2");
glassDto.setThickness("3");
list.add(glassDto);
glassCakeOutClient.batchGeneratePreOutOrder(list);
}
public Double calPersonHours(YieldOrderEntity order,YieldOrderCraftEntity craft,PartEntity part){
Double personTime = 0.0;
List<PersonAbilityEntity> personAbilityList = personAbilityService.list(Wrappers.<PersonAbilityEntity>lambdaQuery()

@ -56,11 +56,15 @@ import org.springblade.desk.basic.feign.IWorkCenterClient;
import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.system.excel.UserExcel;
import org.springblade.system.excel.UserImporter;
import org.springblade.system.pojo.entity.Post;
import org.springblade.system.pojo.entity.User;
import org.springblade.system.pojo.vo.PostVO;
import org.springblade.system.pojo.vo.UserVO;
import org.springblade.system.service.IPostService;
import org.springblade.system.service.IUserExtService;
import org.springblade.system.service.IUserService;
import org.springblade.system.config.RoleConfig;
import org.springblade.system.wrapper.PostWrapper;
import org.springblade.system.wrapper.UserWrapper;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -86,6 +90,7 @@ public class UserController {
private final IUserService userService;
private final IUserExtService userExtService;
private final IWorkCenterClient workCenterClient;
private final IPostService postService;
/**
* 查询单条
*/
@ -210,6 +215,22 @@ public class UserController {
// return R.data(pages);
}
@GetMapping("/getPost")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入post")
public R<List<Post>> getPost(Long userId) {
List<Post> posts = new ArrayList<>();
User detail = userService.getById(userId);
List<Long> postIds = Func.toLongList(detail.getPostId());
if(null != postIds && postIds.size() > 0){
QueryWrapper<Post> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id",postIds);
posts = postService.list(queryWrapper);
}
return R.data(posts);
}
/**
* 新增或修改
*/

@ -82,7 +82,8 @@
and role_id like '%' || #{user.roleId} || '%'
</if>
<if test="user.realName!=null and user.realName != ''">
and real_name = #{user.realName}
-- and real_name = #{user.realName}
and real_name like '%' || #{user.realName} || '%'
</if>
<if test="user.userType!=null and user.userType != ''">
and user_type = #{user.userType}

Loading…
Cancel
Save