生产管理修改

liweidong
李涛 1 day ago
parent d613fca97b
commit 269151a6e4
  1. 30
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/TransferOrderProcessor.java
  2. 7
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IDisTaskingClient.java
  3. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/HandoverRecord.java
  4. 77
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/HandoverRecordVO.java
  5. 40
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java
  6. 21
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java
  7. 23
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/vo/ErpReturnDataVO.java
  8. 55
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java
  9. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DisTaskingController.java
  10. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/DisTaskingClient.java
  11. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/HandoverRecordMapper.java
  12. 54
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/HandoverRecordMapper.xml
  13. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IHandoverRecordService.java
  14. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  15. 58
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/HandoverRecordServiceImpl.java
  16. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  17. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  18. 21
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataProduceClient.java
  19. 12
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java
  20. 150
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java

@ -0,0 +1,30 @@
package org.springblade.job.processor.produce;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.produce.feign.IDisTaskingClient;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
/**
* 已完成订单同步给erp
*
* @author litao
*/
@Component
@Data
@Slf4j
public class TransferOrderProcessor implements BasicProcessor {
@Resource
private IDisTaskingClient client;
@Override
public ProcessResult process(TaskContext context) throws Exception {
log.info("已完成订单同步给erp开始");
return new ProcessResult(client.rbTransferOrder());
}
}

@ -18,6 +18,7 @@ public interface IDisTaskingClient {
String SYNC_DIS_TASKING = API_PREFIX + "/syncDisTasking";
String RECEIVE_ORDER = API_PREFIX + "/receiveOrder";
String RB_TRANSFER_ORDER = API_PREFIX + "/rbTransferOrder";
/**
@ -32,4 +33,10 @@ public interface IDisTaskingClient {
*/
@GetMapping(RECEIVE_ORDER)
boolean receiveOrder();
/**
* 已完成订单同步给erp
*/
@GetMapping(RB_TRANSFER_ORDER)
boolean rbTransferOrder();
}

@ -98,6 +98,9 @@ public class HandoverRecord extends BaseEntity {
@Schema(description = "外协交件单号")
private String deliverKey;
@Schema(description = "发送erp标记")
private Integer sentFlag;
@TableField(exist = false)
@Schema(description = "移交类型")
private String hrTypeName;

@ -0,0 +1,77 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 未发送erp订单信息 视图实体类
*
* @author BladeX
* @since 2026-02-04
*/
@Data
public class HandoverRecordVO {
@Schema(description = "移交记录id")
private Long hrId;
@Schema(description = "单号")
private String hrCode;
@Schema(description = "计划单号")
private String ypCode;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "流程卡号")
private String cardNo;
@Schema(description = "mes流程卡号")
private String mesCardNo;
@Schema(description = "生产标识")
private String prodIdent;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "移交部门")
private String handoverUnit;
@Schema(description = "移交数量")
private Integer handoverQty;
@Schema(description = "B号")
private String roamNo;
@Schema(description = "接收部门")
private String recDept;
@Schema(description = "备注")
private String memo;
@Schema(description = "创建时间")
private Date createTime;
@Schema(description = "创建人")
private String createMan;
@Schema(description = "外协交件单号")
private String deliverKey;
@Schema(description = "试验数量")
private Integer testQty;
@Schema(description = "消耗数量")
private Integer lossQty;
@Schema(description = "报废数量")
private Integer scrapQty;
}

@ -4,15 +4,12 @@ package org.springblade.erpdata.feign;
import org.springblade.common.constant.LauncherConstant;
import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
import org.springblade.erpdata.pojo.vo.MesRbRedoVO;
import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO;
import org.springblade.erpdata.pojo.vo.QueryBatchVO;
import org.springblade.erpdata.pojo.vo.ReworkProcessVO;
import org.springblade.erpdata.pojo.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -43,8 +40,9 @@ public interface IErpDataProduceClient {
String LOAD_REWORK_NO_PROCESS = API_PREFIX + "/loadReworkNoProcess";
String SIGN_DELETE = API_PREFIX + "/signDelete";
String SAVE_DECLARE = API_PREFIX + "/saveDeclare";
String TRAIL_ITEM_LIST = API_PREFIX + "/trialItemList";
String CHECK_COMPLETE = API_PREFIX + "/checkComplete";
/**
* 缺件申报-通过零件号获取批次号
@ -181,4 +179,34 @@ public interface IErpDataProduceClient {
*/
@GetMapping(TRAIL_ITEM_LIST)
R<List<Map<String, String>>> trialItemList(List<String> nameList);
@GetMapping(CHECK_COMPLETE)
R<Boolean> checkCompleteErpBackFill(@RequestParam(value = "woCode") String woCode, @RequestParam(value = "deliverKey", required = false) String deliverKey,
@RequestParam(value = "workQty") Double workQty, @RequestParam(value = "unqualifiedQty") int unqualifiedQty,
@RequestParam(value = "userName") String userName);
/**
* 入库单发送erp
*/
R<ErpReturnDataVO> proRbinviogen(@RequestParam(value = "hrCode") String hrCode, @RequestParam(value = "partCode") String partCode,
@RequestParam(value = "handoverQty") Integer handoverQty, @RequestParam(value = "prodIdent", required = false) String prodIdent,
@RequestParam(value = "batchNo") String batchNo, @RequestParam(value = "ypCode") String ypCode,
@RequestParam(value = "woCode") String woCode, @RequestParam(value = "handoverUnit", required = false) String handoverUnit,
@RequestParam(value = "createMan") String createMan, @RequestParam(value = "recDept", required = false) String recDept,
@RequestParam(value = "memo", required = false) String memo, @RequestParam(value = "deliverKey", required = false) String deliverKey,
@RequestParam(value = "testQty") Integer testQty, @RequestParam(value = "lossQty") Integer lossQty,
@RequestParam(value = "scrapQty") Integer scrapQty);
/**
* 转工单发送erp
*/
R<ErpReturnDataVO> proRbtransferlev(@RequestParam(value = "hrCode") String hrCode, @RequestParam(value = "ypCode") String ypCode,
@RequestParam(value = "woCode") String woCode, @RequestParam(value = "cardNo") String cardNo,
@RequestParam(value = "partCode") String partCode, @RequestParam(value = "batchNo") String batchNo,
@RequestParam(value = "createMan") String createMan, @RequestParam(value = "createTime") Date createTime,
@RequestParam(value = "handoverUnit", required = false) String handoverUnit, @RequestParam(value = "handoverQty") Integer handoverQty,
@RequestParam(value = "recDept", required = false) String recDept, @RequestParam(value = "roamNo", required = false) String roamNo,
@RequestParam(value = "deliverKey", required = false) String deliverKey, @RequestParam(value = "testQty") Integer testQty,
@RequestParam(value = "lossQty") Integer lossQty, @RequestParam(value = "scrapQty") Integer scrapQty);
}

@ -3,12 +3,10 @@ package org.springblade.erpdata.feign;
import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
import org.springblade.erpdata.pojo.vo.MesRbRedoVO;
import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO;
import org.springblade.erpdata.pojo.vo.QueryBatchVO;
import org.springblade.erpdata.pojo.vo.ReworkProcessVO;
import org.springblade.erpdata.pojo.vo.*;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -106,4 +104,19 @@ public class IErpDataProduceClientFallback implements IErpDataProduceClient {
return R.fail("获取数据失败");
}
@Override
public R<Boolean> checkCompleteErpBackFill(String woCode, String deliverKey, Double workQty, int i, String userName) {
return R.fail("获取数据失败");
}
@Override
public R<ErpReturnDataVO> proRbinviogen(String hrCode, String partCode, Integer handoverQty, String prodIdent, String batchNo, String ypCode, String woCode, String handoverUnit, String createMan, String recDept, String memo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty) {
return R.fail("获取数据失败");
}
@Override
public R<ErpReturnDataVO> proRbtransferlev(String hrCode, String ypCode, String woCode, String cardNo, String partCode, String batchNo, String createMan, Date createTime, String handoverUnit, Integer handoverQty, String recDept, String roamNo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty) {
return R.fail("获取数据失败");
}
}

@ -0,0 +1,23 @@
package org.springblade.erpdata.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* erp存储过程返回数据 视图实体类
*
* @author litao
*/
@Data
public class ErpReturnDataVO {
@Schema(description = "返回信息")
private String excnote;
@Schema(description = "状态码")
private String excflag;
@Schema(description = "数据")
private String sqlerrm;
}

@ -0,0 +1,55 @@
package org.springblade.desk.produce.controller;
import com.alibaba.fastjson.JSONObject;
import com.google.protobuf.ServiceException;
import lombok.extern.slf4j.Slf4j;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.desk.oldv1.constant.Constant;
import org.springblade.desk.oldv1.pojo.ResultInfo;
import org.springblade.desk.produce.pojo.vo.*;
import org.springblade.desk.quality.service.IReviewSheetService;
import org.springframework.web.bind.annotation.*;
/**
* aiwebapi接口 控制器
*
* @author BladeX
*/
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/aiWebapi")
@Tag(name = "aiWebapi接口", description = "供外部调用接口")
public class AiWebApiController extends BladeController {
private final IReviewSheetService qcReviewSheetService;
@PostMapping("/reviewResult")
@Operation(summary = "审理结束回调接口")
public ResultInfo reviewResult(HttpServletRequest request) throws Exception {
JSONObject params = (JSONObject) request.getAttribute(Constant.WEBAPI_REQUEST_PARAMETERS);
if (params == null || params.isEmpty()) {
throw new ServiceException("参数传递异常!");
}
try {
String trialId = params.getString("trialId");
Short resultStatus = params.getShort("resultStatus");
String reviewMan = params.getString("reviewMan");
String liabilityPart = params.getString("liabilityPart");
Integer scrapQty = params.getInteger("scrapQty");
Integer reworkQty = params.getInteger("reworkQty");
Integer concedeQty = params.getInteger("concedeQty");
String memo = params.getString("memo");
qcReviewSheetService.reviewResult(trialId, resultStatus, reviewMan, liabilityPart, scrapQty, reworkQty, concedeQty, memo);
log.error("审理结束回调接口{}", params.toJSONString());
} catch (Exception e) {
log.error("审理结束回调接口{}", params.toJSONString(), e);
}
return ResultInfo.ok();
}
}

@ -111,7 +111,7 @@ public class DisTaskingController extends BladeController {
@ApiOperationSupport(order = 5)
@Operation(summary = "车间作业计划修改日志", description = "workPlanLog")
public R<IPage<WorkPlanLog>> workPlanLogPage(WorkPlanLog workPlanLog, Query query) {
IPage<WorkPlanLog> workPlanLogIPage = workPlanLogService.page(Condition.getPage(query), Wrappers.lambdaQuery(workPlanLog));
IPage<WorkPlanLog> workPlanLogIPage = workPlanLogService.page(Condition.getPage(query), Wrappers.lambdaQuery(workPlanLog).orderByDesc(WorkPlanLog::getCreateTime));
workPlanLogIPage.getRecords().forEach(log -> {
User user = UserCache.getUser(log.getCreateUser());
log.setAdjustName(user != null ? user.getRealName() : "");

@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.Hidden;
import lombok.RequiredArgsConstructor;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.desk.produce.service.IDisTaskingService;
import org.springblade.desk.produce.service.IHandoverRecordService;
import org.springblade.desk.produce.service.IPdaSaveService;
import org.springframework.web.bind.annotation.RestController;
@ -22,6 +23,8 @@ public class DisTaskingClient implements IDisTaskingClient {
private final IPdaSaveService pdaSaveServiceImpl;
private final IHandoverRecordService handoverRecordService;
@Override
public boolean syncDisTasking() {
return disTaskingService.syncDisTasking(false);
@ -31,4 +34,9 @@ public class DisTaskingClient implements IDisTaskingClient {
public boolean receiveOrder() {
return pdaSaveServiceImpl.receiveNoProcessOrder();
}
@Override
public boolean rbTransferOrder() {
return handoverRecordService.rbTransferOrder();
}
}

@ -3,6 +3,9 @@ package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.produce.pojo.entity.HandoverRecord;
import org.springblade.desk.produce.pojo.vo.HandoverRecordVO;
import java.util.List;
/**
* 移交记录 Mapper 接口
@ -12,4 +15,8 @@ import org.springblade.desk.produce.pojo.entity.HandoverRecord;
public interface HandoverRecordMapper extends BaseMapper<HandoverRecord> {
Double getPaSumWeight(Long id);
List<HandoverRecordVO> selectReceiptDoc();
List<HandoverRecordVO> selectTransfer();
}

@ -5,4 +5,58 @@
<select id="getPaSumWeight" resultType="java.lang.Double">
select nvl(sum(a.weight),0) from MES_PLATE_AROUND a where a.wp_id in ( select b.wp_id from MES_WORK_ORDER b where b.yo_id = #{id} )
</select>
<select id="selectReceiptDoc" resultType="org.springblade.desk.produce.pojo.vo.HandoverRecordVO">
SELECT
a.id as hrId,
a.hr_code as hrCode,
a.part_code as partCode,
a.handover_qty as handoverQty,
a.prod_ident as prodIdent,
a.batch_no as batchNo,
c.yp_code as ypCode,
a.wo_code as woCode,
a.handover_unit as handoverUnit,
a.card_no as cardNo,
a.create_time as createTime,
u.real_name as createMan,
NVL(c.use_dept_code, a.rec_dept) as recDept,
a.memo as memo,
a.deliver_key as deliverKey,
b.test_qty as testQty,
b.loss_qty as lossQty,
b.scrap_qty as scrapQty
FROM
mes_handover_record a
INNER JOIN mes_work_order b ON a.wo_id = b.id
INNER JOIN mes_yield_order c ON b.yo_id = c.id
LEFT JOIN blade_user u ON a.create_user = u.id
WHERE
a.hr_type = 0 AND a.status = 1 AND a.sent_flag IS NULL
</select>
<select id="selectTransfer" resultType="org.springblade.desk.produce.pojo.vo.HandoverRecordVO">
SELECT
a.id AS hrId,
a.hr_code AS hrCode,
c.yp_code AS ypCode,
a.wo_code AS woCode,
b.mes_card_no AS mesCardNo,
a.part_code AS partCode,
a.batch_no AS batchNo,
a.create_time AS createTime,
u.real_name AS createMan,
a.handover_qty AS handoverQty,
a.handover_unit AS handoverUnit,
a.rec_dept AS recDept,
a.roam_no AS roamNo,
a.deliver_key AS deliverKey,
b.test_qty AS testQty,
b.loss_qty AS lossQty,
b.scrap_qty AS scrapQty
FROM
mes_handover_record a
INNER JOIN mes_work_order b ON a.wo_id = b.id
INNER JOIN mes_yield_order c ON b.yo_id = c.id
LEFT JOIN blade_user u ON a.create_user = u.id
WHERE a.hr_type = 1 AND a.status = 1 AND a.sent_flag IS NULL
</select>
</mapper>

@ -22,4 +22,6 @@ public interface IHandoverRecordService extends BaseService<HandoverRecord> {
void saveHandoverRecord(List<WorkOrder> woList);
String nextCode(String codePattern);
boolean rbTransferOrder();
}

@ -217,7 +217,7 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
* @param wp 工单计划
* @param wo 工单
*/
void qualified(WorkPlan wp, WorkOrder wo);
void qualified(WorkPlan wp, WorkOrder wo, String userName);
/**
* <p>方法名: setRbFilePreserveData </p>

@ -18,12 +18,14 @@ import org.springblade.desk.produce.mapper.HandoverRecordMapper;
import org.springblade.desk.produce.pojo.entity.HandoverRecord;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrderRun;
import org.springblade.desk.produce.pojo.vo.HandoverRecordVO;
import org.springblade.desk.produce.pojo.vo.PrintWarehousingVO;
import org.springblade.desk.produce.service.IHandoverRecordService;
import org.springblade.desk.produce.service.IWorkOrderRunService;
import org.springblade.desk.produce.service.IWorkOrderService;
import org.springblade.desk.produce.service.IWorkPlanService;
import org.springblade.erpdata.feign.IErpDataProduceClient;
import org.springblade.erpdata.pojo.vo.ErpReturnDataVO;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service;
@ -224,6 +226,62 @@ public class HandoverRecordServiceImpl extends BaseServiceImpl<HandoverRecordMap
return codePattern + StrUtil.padPre(String.valueOf(num), len, '0');
}
@Override
public boolean rbTransferOrder() {
// 查询未发送的入库单
List<HandoverRecord> handoverRecords = new ArrayList<>();
List<HandoverRecordVO> receiptDocs = baseMapper.selectReceiptDoc();
if (CollectionUtils.isNotEmpty(receiptDocs)) {
for (HandoverRecordVO receiptDoc : receiptDocs) {
ErpReturnDataVO erpReturn = erpDataProduceClient.proRbinviogen(receiptDoc.getHrCode(), receiptDoc.getPartCode(), receiptDoc.getHandoverQty(),
receiptDoc.getProdIdent(), receiptDoc.getBatchNo(), receiptDoc.getYpCode(), receiptDoc.getWoCode(), receiptDoc.getHandoverUnit(),
receiptDoc.getCreateMan(), receiptDoc.getRecDept(), receiptDoc.getMemo(), receiptDoc.getDeliverKey(),
receiptDoc.getTestQty(), receiptDoc.getLossQty(), receiptDoc.getScrapQty()).getData();
log.info("发送入库单返回:{},{}", erpReturn.getExcflag(), erpReturn.getExcnote());
try {
HandoverRecord handoverRecord = this.getById(receiptDoc.getHrId());
if ("1".equals(erpReturn.getExcflag())) {
handoverRecord.setHrCode(receiptDoc.getHrCode());
handoverRecord.setStatus(HandoverRecord.RUN_STATUS_COMPLETE);
} else {
log.error("入库单异常,订单号{},错误信息{}", receiptDoc.getWoCode(), erpReturn.getExcflag() + "-" + erpReturn.getExcnote() + "-" + erpReturn.getSqlerrm());
}
handoverRecord.setSentFlag(1);
handoverRecords.add(handoverRecord);
} catch (Exception e) {
log.error("入库单异常E,订单号{},错误信息{}", receiptDoc.getWoCode(), erpReturn.getExcflag() + "-" + erpReturn.getExcnote() + "-" + erpReturn.getSqlerrm(), e);
}
}
}
// 查询未发送的转工单
List<HandoverRecordVO> transfers = baseMapper.selectTransfer();
if (CollectionUtils.isNotEmpty(transfers)) {
for (HandoverRecordVO transfer : transfers) {
ErpReturnDataVO erpReturn = erpDataProduceClient.proRbtransferlev(transfer.getHrCode(), transfer.getYpCode(), transfer.getWoCode(),
transfer.getCardNo(), transfer.getPartCode(), transfer.getBatchNo(), transfer.getCreateMan(), transfer.getCreateTime(),
transfer.getHandoverUnit(), transfer.getHandoverQty(), transfer.getRecDept(), transfer.getRoamNo(), transfer.getDeliverKey(),
transfer.getTestQty(), transfer.getLossQty(), transfer.getScrapQty()).getData();
log.info("发送转工单(出)返回:{},{}", erpReturn.getExcflag(), erpReturn.getExcnote());
try {
HandoverRecord handoverRecord = this.getById(transfer.getHrId());
if ("1".equals(erpReturn.getExcflag())) {
handoverRecord.setStatus(HandoverRecord.RUN_STATUS_COMPLETE);
} else {
log.error("转工单(出)异常,订单号{},错误信息{}", transfer.getWoCode(), erpReturn.getExcflag() + "-" + erpReturn.getExcnote() + "-" + erpReturn.getSqlerrm());
}
handoverRecord.setSentFlag(1);
handoverRecords.add(handoverRecord);
} catch (Exception e) {
log.error("转工单(出)异常E,订单号{},错误信息{}", transfer.getWoCode(), erpReturn.getExcflag() + "-" + erpReturn.getExcnote() + "-" + erpReturn.getSqlerrm(), e);
}
}
}
if (CollectionUtils.isNotEmpty(handoverRecords)) {
return this.updateBatchById(handoverRecords);
}
return false;
}
private String getCustodianByRecDept(String partCode, String recDept) {
R<String> byPartCode = erpDataProduceClient.getCustodianByRecDept(partCode, recDept);
return byPartCode.getData();

@ -2120,7 +2120,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
@Override
public void qualified(WorkPlan wp, WorkOrder wo) {
public void qualified(WorkPlan wp, WorkOrder wo, String userName) {
// 检验完成修改车间订单状态(注意如果wp中状态是已完成,则不更改订单状态和工序状态,只对后续工序的接收数和完工数进行更改)
WorkPlan nextWorkPlan = workPlanService.getById(wp.getNextWpId());
if (wp.getStatus() < WorkPlan.STATUS_COMPLETE) {
@ -2133,13 +2133,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
WorkOrderRun wor = workOrderRunService.getById(wo.getWorId());
WorkPlan frontWorkPlan = workPlanService.getById(wp.getFrontWpId());
// if (wor != null && StringUtils.isNotBlank(wor.getDeliverKey())) {
if (wor != null && StringUtils.isNotBlank(wor.getDeliverKey())) {
// 判断下序没有外协商单位,或者上序的外协商和下序的外协商不一致,调用接口关闭外协信息
// if ((nextWorkPlan == null || nextWorkPlan.getOcId() == null || (frontWorkPlan.getOcId() != null && !frontWorkPlan.getOcId().equals(nextWorkPlan.getOcId())))) {
if ((nextWorkPlan == null || nextWorkPlan.getOcId() == null || (frontWorkPlan.getOcId() != null && !frontWorkPlan.getOcId().equals(nextWorkPlan.getOcId())))) {
//调用erp检验接口
// prWorkCheckService.checkCompleteErpBackFill(wor.getWoCode(), wor.getDeliverKey(), wp.getWorkQty(), 0, wc.getCheckMan());
// }
// }
erpDataProduceClient.checkCompleteErpBackFill(wor.getWoCode(), wor.getDeliverKey(), wp.getWorkQty(), 0, userName);
}
}
//检查下序与上序工序外协单位是否一样,如果一样直接接收报工
this.collaborative(wp, frontWorkPlan, nextWorkPlan, true, wo);
workPlanService.updateById(wp);

@ -1539,7 +1539,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
this.computeOrderQty(wp, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
// this.qualified(wp, wc, wo);
IWorkOrderService workOrderService = context.getBean(IWorkOrderService.class);
workOrderService.qualified(wp,wo);
workOrderService.qualified(wp,wo,AuthUtil.getUserName());
} else if (countNA == itemList.size()) { // 全部item NA
checkResult = InspectionTaskConst.CHECK_RESULT_NA;
} else if (countNO >= 0 && countNO <= itemList.size()) { // 不合格

@ -6,14 +6,12 @@ import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
import org.springblade.erpdata.pojo.vo.MesRbRedoVO;
import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO;
import org.springblade.erpdata.pojo.vo.QueryBatchVO;
import org.springblade.erpdata.pojo.vo.ReworkProcessVO;
import org.springblade.erpdata.pojo.vo.*;
import org.springblade.erpdata.service.IErpDataProduceService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -116,4 +114,19 @@ public class ErpDataProduceClient implements IErpDataProduceClient {
return R.data(erpDataProduceService.trialItemList(nameList));
}
@Override
public R<Boolean> checkCompleteErpBackFill(String woCode, String deliverKey, Double workQty, int unqualifiedQty, String userName) {
return R.data(erpDataProduceService.checkCompleteErpBackFill(woCode, deliverKey, workQty, unqualifiedQty, userName));
}
@Override
public R<ErpReturnDataVO> proRbinviogen(String hrCode, String partCode, Integer handoverQty, String prodIdent, String batchNo, String ypCode, String woCode, String handoverUnit, String createMan, String recDept, String memo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty) {
return R.data(erpDataProduceService.proRbinviogen(hrCode, partCode, handoverQty, prodIdent, batchNo, ypCode, woCode, handoverUnit, createMan, recDept, memo, deliverKey, testQty, lossQty, scrapQty));
}
@Override
public R<ErpReturnDataVO> proRbtransferlev(String hrCode, String ypCode, String woCode, String cardNo, String partCode, String batchNo, String createMan, Date createTime, String handoverUnit, Integer handoverQty, String recDept, String roamNo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty) {
return R.data(erpDataProduceService.proRbtransferlev(hrCode, ypCode, woCode, cardNo, partCode, batchNo, createMan, createTime, handoverUnit, handoverQty, recDept, roamNo, deliverKey, testQty, lossQty, scrapQty));
}
}

@ -1,11 +1,9 @@
package org.springblade.erpdata.service;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.erpdata.pojo.vo.MesRbRedoVO;
import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO;
import org.springblade.erpdata.pojo.vo.QueryBatchVO;
import org.springblade.erpdata.pojo.vo.ReworkProcessVO;
import org.springblade.erpdata.pojo.vo.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -55,4 +53,10 @@ public interface IErpDataProduceService {
* @return 结果
*/
List<Map<String, String>> trialItemList(List<String> nameList);
Boolean checkCompleteErpBackFill(String woCode, String deliverKey, Double workQty, int unqualifiedQty, String userName);
ErpReturnDataVO proRbinviogen(String hrCode, String partCode, Integer handoverQty, String prodIdent, String batchNo, String ypCode, String woCode, String handoverUnit, String createMan, String recDept, String memo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty);
ErpReturnDataVO proRbtransferlev(String hrCode, String ypCode, String woCode, String cardNo, String partCode, String batchNo, String createMan, Date createTime, String handoverUnit, Integer handoverQty, String recDept, String roamNo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty);
}

@ -6,10 +6,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.erpdata.mapper.ErpDataProduceMapper;
import org.springblade.erpdata.pojo.vo.MesRbRedoVO;
import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO;
import org.springblade.erpdata.pojo.vo.QueryBatchVO;
import org.springblade.erpdata.pojo.vo.ReworkProcessVO;
import org.springblade.erpdata.pojo.vo.*;
import org.springblade.erpdata.service.IErpDataProduceService;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.SqlOutParameter;
@ -313,4 +310,149 @@ public class ErpDataProduceServiceImpl implements IErpDataProduceService {
public List<Map<String, String>> trialItemList(List<String> nameList) {
return erpDataProduceMapper.trialItemList(nameList);
}
@Override
public Boolean checkCompleteErpBackFill(String woCode, String deliverKey, Double workQty, int unqualifiedQty, String userName) {
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 指定存储过程名(包含 DB Link)
.withProcedureName("dba_mgr.pro_rbwxdqmtn")
// 建议关闭元数据访问(通过 DB Link 访问时可避免权限/性能问题)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数
.declareParameters(
new SqlParameter("v_sono", Types.VARCHAR),
new SqlParameter("v_deliverkey", Types.VARCHAR),
new SqlParameter("v_zkrecqty", Types.DOUBLE),
new SqlParameter("v_cntn", Types.INTEGER),
new SqlParameter("v_chkman", Types.VARCHAR),
new SqlParameter("v_chadate", Types.DATE),
new SqlOutParameter("v_excnote", Types.VARCHAR),
new SqlOutParameter("v_excflag", Types.VARCHAR)
);
// 2. 封装输入参数
Map<String, Object> inParams = new HashMap<>();
inParams.put("v_sono", woCode);
inParams.put("v_deliverkey", deliverKey);
inParams.put("v_zkrecqty", workQty);
inParams.put("v_cntn", unqualifiedQty);
inParams.put("v_chkman", userName);
inParams.put("v_chadate", new Date());
// 3. 执行并获取结果 Map
Map<String, Object> resultMap = jdbcCall.execute(inParams);
// 4. 提取输出参数
String excflag = (String) resultMap.get("v_excflag");
String excnote = (String) resultMap.get("v_excnote");
return !"0".equals(excflag);
}
@Override
public ErpReturnDataVO proRbinviogen(String hrCode, String partCode, Integer handoverQty, String prodIdent, String batchNo, String ypCode, String woCode, String handoverUnit, String createMan, String recDept, String memo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty) {
ErpReturnDataVO erpReturnDataVO = new ErpReturnDataVO();
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 指定存储过程名(包含 DB Link)
.withProcedureName("dba_mgr.pro_rbinviogen")
// 建议关闭元数据访问(通过 DB Link 访问时可避免权限/性能问题)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数
.declareParameters(
new SqlParameter("v_hr_code", Types.VARCHAR),
new SqlParameter("v_part_code", Types.VARCHAR),
new SqlParameter("v_handover_qty", Types.INTEGER),
new SqlParameter("v_prod_ident", Types.VARCHAR),
new SqlParameter("v_batch_no", Types.VARCHAR),
new SqlParameter("v_po_code", Types.VARCHAR),
new SqlParameter("v_wo_code", Types.VARCHAR),
new SqlParameter("v_handover_unit", Types.VARCHAR),
new SqlParameter("v_create_man", Types.VARCHAR),
new SqlParameter("v_rec_dept", Types.VARCHAR),
new SqlParameter("v_memo", Types.VARCHAR),
new SqlParameter("v_deliver_key", Types.VARCHAR),
new SqlParameter("v_test_qty", Types.INTEGER),
new SqlParameter("v_loss_qty", Types.INTEGER),
new SqlParameter("v_scrap_qty", Types.INTEGER),
new SqlOutParameter("v_excnote", Types.VARCHAR),
new SqlOutParameter("v_excflag", Types.VARCHAR)
);
// 2. 封装输入参数
Map<String, Object> inParams = new HashMap<>();
inParams.put("v_hr_code", hrCode);
inParams.put("v_part_code", partCode);
inParams.put("v_handover_qty", handoverQty);
inParams.put("v_prod_ident", prodIdent);
inParams.put("v_batch_no", batchNo);
inParams.put("v_po_code", ypCode);
inParams.put("v_wo_code", woCode);
inParams.put("v_handover_unit", handoverUnit);
inParams.put("v_create_man", createMan);
inParams.put("v_rec_dept", recDept);
inParams.put("v_memo", memo);
inParams.put("v_deliver_key", deliverKey);
inParams.put("v_test_qty", testQty);
inParams.put("v_loss_qty", lossQty);
inParams.put("v_scrap_qty", scrapQty);
// 3. 执行并获取结果 Map
Map<String, Object> resultMap = jdbcCall.execute(inParams);
// 4. 提取输出参数
erpReturnDataVO.setExcflag((String) resultMap.get("v_excflag"));
erpReturnDataVO.setExcnote((String) resultMap.get("v_excnote"));
return erpReturnDataVO;
}
@Override
public ErpReturnDataVO proRbtransferlev(String hrCode, String ypCode, String woCode, String cardNo, String partCode, String batchNo, String createMan, Date createTime, String handoverUnit, Integer handoverQty, String recDept, String roamNo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty) {
ErpReturnDataVO erpReturnDataVO = new ErpReturnDataVO();
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 指定存储过程名(包含 DB Link)
.withProcedureName("dba_mgr.pro_rbtransferlev")
// 建议关闭元数据访问(通过 DB Link 访问时可避免权限/性能问题)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数
.declareParameters(
new SqlParameter("v_hr_code", Types.VARCHAR),
new SqlParameter("v_po_code", Types.VARCHAR),
new SqlParameter("v_wo_code", Types.VARCHAR),
new SqlParameter("v_card_no", Types.VARCHAR),
new SqlParameter("v_part_code", Types.VARCHAR),
new SqlParameter("v_batch_no", Types.VARCHAR),
new SqlParameter("v_create_man", Types.VARCHAR),
new SqlParameter("v_create_time", Types.DATE),
new SqlParameter("v_handover_unit", Types.VARCHAR),
new SqlParameter("v_handover_qty", Types.INTEGER),
new SqlParameter("v_rec_dept", Types.VARCHAR),
new SqlParameter("v_roam_no", Types.VARCHAR),
new SqlParameter("v_deliver_key", Types.VARCHAR),
new SqlParameter("v_test_qty", Types.INTEGER),
new SqlParameter("v_loss_qty", Types.INTEGER),
new SqlParameter("v_scrap_qty", Types.INTEGER),
new SqlOutParameter("v_excnote", Types.VARCHAR),
new SqlOutParameter("v_excflag", Types.VARCHAR)
);
// 2. 封装输入参数
Map<String, Object> inParams = new HashMap<>();
inParams.put("v_hr_code", hrCode);
inParams.put("v_po_code", ypCode);
inParams.put("v_wo_code", woCode);
inParams.put("v_card_no", cardNo);
inParams.put("v_part_code", partCode);
inParams.put("v_batch_no", batchNo);
inParams.put("v_create_man", createMan);
inParams.put("v_create_time", createTime);
inParams.put("v_handover_unit", handoverUnit);
inParams.put("v_handover_qty", handoverQty);
inParams.put("v_rec_dept", recDept);
inParams.put("v_roam_no", roamNo);
inParams.put("v_deliver_key", deliverKey);
inParams.put("v_test_qty", testQty);
inParams.put("v_loss_qty", lossQty);
inParams.put("v_scrap_qty", scrapQty);
// 3. 执行并获取结果 Map
Map<String, Object> resultMap = jdbcCall.execute(inParams);
// 4. 提取输出参数
erpReturnDataVO.setExcflag((String) resultMap.get("v_excflag"));
erpReturnDataVO.setExcnote((String) resultMap.get("v_excnote"));
return erpReturnDataVO;
}
}

Loading…
Cancel
Save