检验通过修改订单方法

master
李涛 3 days ago
parent 982452cb4e
commit d3ec368715
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java
  2. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MesMacToolUseVO.java
  3. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IBasicClazzService.java
  4. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/BasicClazzServiceImpl.java
  5. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/iot/controller/IotWebApiController.java
  6. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProcessQualityMaintenanceController.java
  7. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml
  8. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  9. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DisTaskingServiceImpl.java
  10. 54
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java
  11. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java

@ -134,7 +134,7 @@ public class BasicClazz extends BaseEntity {
* 业务类别
*/
@Schema(description = "业务类别")
private Integer bizType;
private Short bizType;
/**
* 备注
*/

@ -12,6 +12,9 @@ import lombok.Data;
@Data
public class MesMacToolUseVO {
@Schema(description = "工序ID")
private Long wpId;
@Schema(description = "绑定编号")
private String code;

@ -41,4 +41,6 @@ public interface IBasicClazzService extends BaseService<BasicClazz> {
* @param vo
*/
void setVOValue(BasicClazzVO vo);
boolean saveBasicClass(String deviceCode, String callNumber, Short typeSuspensionNo);
}

@ -20,6 +20,7 @@ import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
@ -58,4 +59,14 @@ public class BasicClazzServiceImpl extends BaseServiceImpl<BasicClazzMapper, Bas
public void setVOValue(BasicClazzVO vo) {
}
@Override
public boolean saveBasicClass(String deviceCode, String callNumber, Short typeSuspensionNo) {
BasicClazz bsBasicClass = new BasicClazz();
bsBasicClass.setCode(deviceCode);
bsBasicClass.setName(callNumber);
bsBasicClass.setUpdateTime(new Date());
bsBasicClass.setBizType(typeSuspensionNo);
return this.save(bsBasicClass);
}
}

@ -10,12 +10,16 @@ import org.hibernate.validator.internal.util.logging.Log;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.BasicClazz;
import org.springblade.desk.basic.service.IBasicClazzService;
import org.springblade.desk.dashboard.pojo.entity.DsBatchPreservePlanEntity;
import org.springblade.desk.dashboard.pojo.vo.DsBatchPreservePlanVO;
import org.springblade.desk.dashboard.service.IDsPartService;
import org.springblade.desk.dashboard.wrapper.DsBatchPreservePlanWrapper;
import org.springblade.desk.device.service.IEquipmentService;
import org.springblade.desk.iot.setvice.IEpLineElectricService;
import org.springblade.desk.produce.pojo.vo.EleFilesEditVO;
import org.springblade.desk.produce.service.IProcessQualityMaintenanceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -30,6 +34,7 @@ public class IotWebApiController {
@Autowired
IEpLineElectricService lineElectricService;
private final IBasicClazzService bsBasicClassService;
@Operation(summary = "产线电量信息调用接口")
@RequestMapping(value = "/saveDeviceAhm", method = RequestMethod.POST)
@ -44,5 +49,15 @@ public class IotWebApiController {
return R.success();
}
@PostMapping("/getSuspensionNo")
@Operation(summary = "获取挂次号接口")
public R getSuspensionNo(@RequestBody JSONObject data) {
if (data == null || data.isEmpty()) {
throw new ServiceException("参数传递异常!");
}
log.info("推送挂次号,设备编码:" + data.getString("deviceCode") + " 挂次号:" + data.getString("callNumber"));
return R.status(bsBasicClassService.saveBasicClass(data.getString("deviceCode"), data.getString("callNumber"), BasicClazz.TYPE_SUSPENSION_NO));
}
}

@ -12,7 +12,6 @@ import org.springblade.core.tool.api.R;
import org.springblade.desk.device.pojo.entity.EquipmentEntity;
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity;
import org.springblade.desk.produce.pojo.vo.*;
import org.springblade.desk.produce.service.IMakeRecService;
import org.springblade.desk.produce.service.IProcessQualityMaintenanceService;
import org.springblade.desk.quality.pojo.entity.ProReTemplate;
import org.springframework.web.bind.annotation.*;
@ -33,8 +32,6 @@ public class ProcessQualityMaintenanceController extends BladeController {
private final IProcessQualityMaintenanceService proQuaMainService;
private final IMakeRecService makeRecService;
@GetMapping("/getWorkOrderProcess")
@ApiOperationSupport(order = 1)
@Operation(summary = "查询订单的工序")

@ -168,7 +168,8 @@
order by a.BIND_TIME DESC
</select>
<select id="getProcessBingingRec" resultType="org.springblade.desk.produce.pojo.vo.MesMacToolUseVO">
SELECT a.MTN_CODE AS code,
SELECT a.WP_ID AS wpId,
a.MTN_CODE AS code,
d.RS_CODE AS rsCode,
e.FS_CODE AS fsCode,
f.DEVICE_CODE AS deviceCode

@ -227,4 +227,6 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
* @param prMacToolUse 工单MacTool使用
*/
void setRbFilePreserveData(List<MesRbFilePreserveSlotEntity> preserveSlotList, List<MesQcProduceRunEntity> qcProduceRunsList, WorkPlan workPlan, List<ProduceMonitorFileSlotVO> dsRbFilePreserveSlotList, MacToolUse prMacToolUse);
void addWorkOrder(WorkOrder newWo);
}

@ -114,13 +114,11 @@ public class DisTaskingServiceImpl extends BaseServiceImpl<DisTaskingMapper, Dis
for (WorkOrder prWorkOrder : prWorkOrderList) {
if (prWorkOrder != null && prWorkOrder.getId() != null) {
prWorkOrder.setRunStatus(WorkOrder.RUN_STATUS_RECEIVE);
//zxh 20250522 增加记录订单变更为加工中日志
// syDockingLogService.sendDockingLog("修改订单执行状态为加工中",prWorkOrder.getWoCode(),"taskCompleteOrder()");
//判定是否是检验项目,并且还有未检验
WorkPlan wp = workPlanService.getById(prWorkOrder.getWpId());
List<WorkPlanItem> list = workPlanItemService.list(Wrappers.lambdaQuery(WorkPlanItem.class)
.eq(WorkPlanItem::getWpId, wp.getId()).eq(WorkPlanItem::getCheckResult, -1));
if (list != null && list.size() > 0) {
.eq(WorkPlanItem::getWpId, wp.getId()).eq(WorkPlanItem::getCheckResult, 0));
if (list != null && !list.isEmpty()) {
prWorkOrder.setRunStatus(WorkOrder.RUN_STATUS_CHECK);
}
workOrderService.updateById(prWorkOrder);

@ -36,6 +36,7 @@ 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.*;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -492,30 +493,27 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
String memo = "";
List<PrReworkProcessEntity> rpList = dsPartService.selectReworkPartCraft(rr.getPrtno(), rr.getRedono(), rr.getSplcode(), String.valueOf(rr.getSeqno()));
if (rpList == null && rpList.size() == 0) {
if (rpList == null && rpList.isEmpty()) {
//修改erp返工单工艺状态为无工艺
//prReworkProcessDao.receiveOrder(rr, user.getLdapName(), 0);
} else {
//查询原订单
// WorkOrder wo = prWorkOrderService.getWorkOrderUniqueRec(rr.getPrtno(), rr.getSplcode(), rr.getSono());
WorkOrder wo = workOrderService.getOne(Wrappers.<WorkOrder>lambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode()));
//syDockingLogService.sendDockingLog("查询原单", rr.getRedono(), rr.getPrtno()+","+rr.getSplcode()+","+rr.getSono());
if (wo == null) {
wo = workOrderService.getOne(Wrappers.<WorkOrder>lambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode()));
//syDockingLogService.sendDockingLog("查询原单", rr.getRedono(), rr.getPrtno()+","+rr.getSplcode());
}
memo = memo + "物料号:" + rr.getPrtno() + "批次号:" + rr.getSplcode() + " 订单号:" + rr.getSono() + " ---- ";
YieldOrder yieldOrder;
WorkOrder newWo = new WorkOrder();
//zxh 20250820 返修发现部门为3400的才进行原单覆盖
if (wo != null && rr.getUsedept().equals("3400")) {
if (wo != null && "3400".equals(rr.getUsedept())) {
memo = memo + "找到原单,woId:" + wo.getId() + " ---- ";
yieldOrder = yieldOrderService.getYoByCardNo(wo.getCardNo());
yieldOrder = yieldOrderService.getById(wo.getYoId());
List<WorkPlan> wpList = null;
//返工路线是3400-3400内部返工的,需要COPY原订单且不更新上账时间和上账人,反之则走非车间内部返工处理
if (StringUtils.isNotBlank(rr.getDeptcode()) && rr.getDeptcode().trim().equals("3400-3400")) {
if (StringUtils.isNotBlank(rr.getDeptcode()) && "3400-3400".equals(rr.getDeptcode().trim())) {
//顺延原WO号
//newWo.setWoCode(prWorkOrderCodeService.nextCode(yieldOrder.getPoCode()));
newWo.setWoCode(workOrderService.nextCode(yieldOrder.getYpCode()));
newWo.setWpId(wo.getWpId());
//zxh 20250520 返修路线为3400-3400的返修订单在车间订单级记录返修订单接收人
newWo.setMemo("返工路线是3400-3400,记录返修接收人为" + rr.getRecman());
@ -524,9 +522,10 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
log.info("3400-3400新车间订单:woCode:{},oldYoCode:{}", newWo.getWoCode(), yieldOrder.getYoCode());
} else {
//copy原生产订单,更新单号和关键信息
YieldOrder newYieldOrder = yieldOrder;
newYieldOrder.setYoCode(null);
newYieldOrder.setDemandDate(new Date());
YieldOrder newYieldOrder = new YieldOrder();
BeanUtils.copyProperties(yieldOrder, newYieldOrder);
newYieldOrder.setId(null);
// newYieldOrder.setDemandDate(rr.getReqdate());
//如果接收人不为空,则默认此接收人和接收时间
if (StringUtils.isNotBlank(rr.getRecman())) {
//user = epDosingRecDao.getUserByLdapName(rr.getRecman().trim());
@ -537,56 +536,54 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
// DateTime.parse(rr.getRecdate()) : new Date());
newYieldOrder.setMemo(rr.getRemark());
newYieldOrder.setReworkMemo(rr.getDetail());
//newYieldOrder.setPoQty(Double.valueOf(rr.getAmount()));
newYieldOrder.setYpQty(rr.getAmount());
newYieldOrder.setPrimaryCraft(rr.getDeptcode());
//newYieldOrder.setSyncTime(new Date());
newYieldOrder.setReworkCode(rr.getRedono());
newYieldOrder.setReworkNo(Long.valueOf(rr.getSeqno()));
newYieldOrder.setYoCode(rr.getRedono());
//zxh 20250522 找到原单,非3400-3400,复制pj后不再更改pocode
//newYieldOrder.setPoCode(rr.getRedono());
newYieldOrder.setProduceBool(Boolean.TRUE);
// newYieldOrder.setCurStatus(PjYieldOrder.CUR_STATUS_PROCESSING);
newYieldOrder.setStatus(YieldOrder.CUR_STATUS_PROCESSING);
//周新昊 20240912 返修订单找到原单复制pj后为使用部门代码赋值
//newYieldOrder.setUseDeptcode(rr.getUsedept());
newYieldOrder.setUseDeptCode(rr.getUsedept());
yieldOrderService.save(newYieldOrder);
log.info("不是厂内,保存新生产订单:yoId{},yoCode{}", newYieldOrder.getId(), newYieldOrder.getYoCode());
//原订单已经入库,则更新接收人、接收时间并且车间订单号不顺延原订单号,反之则需要顺延原订单号
if (wo.getPutStoreTime() != null) {
//newWo.setWoCode(prWorkOrderCodeService.nextCode(rr.getRedono()));
newWo.setWoCode(workOrderService.nextCode(rr.getRedono()));
newWo.setReInStore("1");
//newYieldOrder.setPoCode(rr.getRedono());
newYieldOrder.setYpCode(rr.getRedono());
} else {
// newWo.setWoCode(prWorkOrderCodeService.nextCode(yieldOrder.getPoCode()));
newWo.setWoCode(workOrderService.nextCode(yieldOrder.getYpCode()));
}
//绑定新车间订单的接收信息
//newWo.setPjYieldOrder(newYieldOrder);
newWo.setYoId(newYieldOrder.getId());
//更新原生产订单状态为已关闭
YieldOrder oldYo = yieldOrderService.getById(wo.getYoId());
YieldOrder oldYo = yieldOrderService.getById(yieldOrder.getId());
if (oldYo != null) {
// oldYo.setCurStatus(PjYieldOrder.CUR_STATUS_VOIDED);
oldYo.setCustodian(rr.getRecman());
oldYo.setStatus(YieldOrder.CUR_STATUS_VOIDED);
yieldOrderService.updateById(oldYo);
}
memo = memo + "新生产订单,yoId:" + newYieldOrder.getId() + " ---- ";
}
//返工订单流程卡号重新生成
//newWo.setCardNo(prWorkOrderService.nextCardNo(wo.getPjYieldOrder().getPoCode(), wo.getCardNo()));
newWo.setCardNo(workOrderService.nextCardNo(yieldOrder.getYpCode(), wo.getCardNo()));
newWo.setBatchNo(rr.getSplcode());
newWo.setMakeQty(Double.valueOf(rr.getAmount()));
newWo.setMakeQty(rr.getAmount());
newWo.setRunStatus(WorkOrder.RUN_STATUS_NORMAL);
newWo.setPriority(wo.getPriority());
newWo.setReworkCode(rr.getRedono());
newWo.setReworkNo(rr.getSeqno().intValue());
newWo.setReworkNo(rr.getSeqno());
newWo.setOem("0");
newWo.setOemOut("1");
//newWo.setOemType(FlowBusinessBean.STATUS_NEW);
newWo.setOemType(-1);
newWo.setPlanner(wo.getPlanner());
newWo.setDispatcher(wo.getDispatcher());
newWo.setReworkMemo(rr.getDetail());
newWo.setDemandDate(new Date());
workOrderService.save(newWo);
// newWo.setDemandDate(rr.getReqdate());
workOrderService.addWorkOrder(newWo);
log.info("保存新车间订单:woId{},woCode{}", newWo.getId(), newWo.getWoCode());
//组装生产工序
wpList = new ArrayList<>(rpList.size());
@ -627,6 +624,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
return prReworkProcessList;
}
@Override
public void completeOrder(MesRbRedoRoutDTO rr, String userName) {
WorkOrder wo = workOrderService.getOne(Wrappers.lambdaQuery(WorkOrder.class)
.eq(WorkOrder::getBatchNo, rr.getSplcode()));

@ -862,7 +862,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
this.updateById(workOrder);
}
private void addWorkOrder(WorkOrder wo) {
@Override
public void addWorkOrder(WorkOrder wo) {
wo.setInventoryQty(0d);
wo.setCreateTime(new Date());
wo.setApprovalStatus(WorkOrder.APPROVAL_STATUS_NORMAL);

Loading…
Cancel
Save