liweidong
liweidong-hj 5 days ago
commit 9c9c7b4d54
  1. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/UrgentPartVO.java
  2. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/PriceSheetQuery.java
  3. 8
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IDisTaskingClient.java
  4. 4
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataOemClient.java
  5. 2
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataOemClientFallback.java
  6. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/PlanAssignSteerModifyServiceImpl.java
  7. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/UrgentPartServiceImpl.java
  8. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java
  9. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java
  10. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/DisTaskingClient.java
  11. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml
  12. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  13. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundServiceImpl.java
  14. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
  15. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  16. 3
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataOemClientImpl.java
  17. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataOemMapper.xml
  18. 1
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StClassRequestServiceImpl.java

@ -3,12 +3,16 @@
*/ */
package org.springblade.desk.basic.pojo.vo; package org.springblade.desk.basic.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.desk.basic.pojo.entity.UrgentPart; import org.springblade.desk.basic.pojo.entity.UrgentPart;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial; import java.io.Serial;
import java.util.Date;
/** /**
* [急件维护] 视图实体类 * [急件维护] 视图实体类
@ -33,4 +37,13 @@ public class UrgentPartVO extends UrgentPart {
@Schema(description = "状态名称") @Schema(description = "状态名称")
private String statusName; private String statusName;
@Schema(description = "需求交期")
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
private Date requireDateStart;
@Schema(description = "需求交期")
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
private Date requireDateEnd;
} }

@ -2,6 +2,7 @@ package org.springblade.desk.oem.pojo.request;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.springblade.core.mp.support.Query;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate; import java.time.LocalDate;
@ -69,4 +70,7 @@ public class PriceSheetQuery {
@Schema(description = "价格类型") @Schema(description = "价格类型")
private String pricetype; private String pricetype;
@Schema(description = "查询条件")
private Query query;
} }

@ -3,6 +3,7 @@ package org.springblade.desk.produce.feign;
import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.launch.constant.AppConstant;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/** /**
* 调度任务同步接口 * 调度任务同步接口
@ -20,6 +21,7 @@ public interface IDisTaskingClient {
String RECEIVE_ORDER = API_PREFIX + "/receiveOrder"; String RECEIVE_ORDER = API_PREFIX + "/receiveOrder";
String RB_TRANSFER_ORDER = API_PREFIX + "/rbTransferOrder"; String RB_TRANSFER_ORDER = API_PREFIX + "/rbTransferOrder";
String UN_BIND_EC = API_PREFIX + "/unBindEc"; String UN_BIND_EC = API_PREFIX + "/unBindEc";
String SAVE_WORK_ORDER_RUN = API_PREFIX + "/saveWorkOrderRun";
/** /**
@ -43,4 +45,10 @@ public interface IDisTaskingClient {
@GetMapping(UN_BIND_EC) @GetMapping(UN_BIND_EC)
boolean unBindEc(); boolean unBindEc();
/**
* 保存生产运行记录
*/
@GetMapping(SAVE_WORK_ORDER_RUN)
boolean saveWorkOrderRun(@RequestParam String woId);
} }

@ -44,10 +44,10 @@ public interface IErpDataOemClient {
/** /**
* 报价单查询 * 报价单查询
* *
* @param query * @param priceSheetQuery
*/ */
@GetMapping(PRICE_SHEET_DATA) @GetMapping(PRICE_SHEET_DATA)
R<Page<PriceSheetVO>> priceSheetData(@SpringQueryMap PriceSheetQuery priceSheetQuery, @SpringQueryMap Query query); R<Page<PriceSheetVO>> priceSheetData(@SpringQueryMap PriceSheetQuery priceSheetQuery);
/** /**
* 协作外协订单接收 * 协作外协订单接收

@ -22,7 +22,7 @@ public class IErpDataOemClientFallback implements IErpDataOemClient {
} }
@Override @Override
public R<Page<PriceSheetVO>> priceSheetData(PriceSheetQuery priceSheetQuery, Query query) { public R<Page<PriceSheetVO>> priceSheetData(PriceSheetQuery priceSheetQuery) {
return R.fail("查询报价单 失败"); return R.fail("查询报价单 失败");
} }

@ -171,7 +171,7 @@ public class PlanAssignSteerModifyServiceImpl extends BaseServiceImpl<PlanAssign
PlanAssignSteerModify modify = auditAndGetModify(id, result, remark); PlanAssignSteerModify modify = auditAndGetModify(id, result, remark);
Long currentUserId = AuthUtil.getUserId(); Long currentUserId = AuthUtil.getUserId();
String currentUserName = AuthUtil.getUserName(); String currentUserName = AuthUtil.getNickName();
String userAccount = AuthUtil.getUserAccount(); String userAccount = AuthUtil.getUserAccount();
Date now = new Date(); Date now = new Date();
@ -533,11 +533,11 @@ public class PlanAssignSteerModifyServiceImpl extends BaseServiceImpl<PlanAssign
node.setLabel("审批人"); node.setLabel("审批人");
// 根据审批结果设置状态和值 // 根据审批结果设置状态和值
if (PlanAssignSteerModify.ApprovalStatus.PASS.equals(record.getAuditResult())) { if (RESULT_PASS.equals(record.getAuditResult())) {
node.setValue(record.getAuditorName() != null ? record.getAuditorName() : "未知"); node.setValue(record.getAuditorName() != null ? record.getAuditorName() : "未知");
node.setStatus("success"); node.setStatus("success");
} }
if (PlanAssignSteerModify.ApprovalStatus.REJECT.equals(record.getAuditResult())) { if (RESULT_REJECT.equals(record.getAuditResult())) {
node.setValue(record.getAuditorName() != null ? record.getAuditorName() : "未知"); node.setValue(record.getAuditorName() != null ? record.getAuditorName() : "未知");
node.setStatus("false"); node.setStatus("false");
} }

@ -66,6 +66,9 @@ public class UrgentPartServiceImpl extends BaseServiceImpl<UrgentPartMapper, Urg
.like(StrUtil.isNotEmpty(urgentPart.getBatchNo()), UrgentPart::getBatchNo, urgentPart.getBatchNo()) .like(StrUtil.isNotEmpty(urgentPart.getBatchNo()), UrgentPart::getBatchNo, urgentPart.getBatchNo())
.eq(Objects.nonNull(urgentPart.getStatus()), UrgentPart::getStatus, urgentPart.getStatus()) .eq(Objects.nonNull(urgentPart.getStatus()), UrgentPart::getStatus, urgentPart.getStatus())
.eq(Objects.isNull(urgentPart.getStatus()),UrgentPart::getStatus, 0) .eq(Objects.isNull(urgentPart.getStatus()),UrgentPart::getStatus, 0)
//需求交期时间范围查询条件
.ge(urgentPart.getRequireDateStart() != null, UrgentPart::getRequireDate, urgentPart.getRequireDateStart())
.le(urgentPart.getRequireDateEnd() != null, UrgentPart::getRequireDate, urgentPart.getRequireDateEnd())
.orderByDesc(UrgentPart::getUpdateTime); .orderByDesc(UrgentPart::getUpdateTime);
IPage<UrgentPart> iPage = page(page, queryWrapper); IPage<UrgentPart> iPage = page(page, queryWrapper);
String userIdSet = iPage.getRecords().stream().map(s -> { String userIdSet = iPage.getRecords().stream().map(s -> {
@ -169,7 +172,7 @@ public class UrgentPartServiceImpl extends BaseServiceImpl<UrgentPartMapper, Urg
if (StrUtil.isEmpty(excel.getPlanNo()) || StrUtil.isEmpty(excel.getPartCode())) { if (StrUtil.isEmpty(excel.getPlanNo()) || StrUtil.isEmpty(excel.getPartCode())) {
throw new RuntimeException("计划单号和零件号为必填项"); throw new RuntimeException("计划单号和零件号为必填项");
} }
UrgentPart urgentPart = BeanUtil.copyProperties(excel, UrgentPart.class); UrgentPart urgentPart = BeanUtil.copyProperties(excel, UrgentPart.class, "status");
if (BeanUtil.isEmpty(urgentPart)){ if (BeanUtil.isEmpty(urgentPart)){
return null; return null;
} }
@ -181,7 +184,6 @@ public class UrgentPartServiceImpl extends BaseServiceImpl<UrgentPartMapper, Urg
if (StrUtil.isNotEmpty(excel.getStatus())) { if (StrUtil.isNotEmpty(excel.getStatus())) {
urgentPart.setStatus(UrgentPart.UrgentPartStatusEnum.of(excel.getStatus()).getCode()); urgentPart.setStatus(UrgentPart.UrgentPartStatusEnum.of(excel.getStatus()).getCode());
} }
if (urgentPart.getStatus() == null) { if (urgentPart.getStatus() == null) {
urgentPart.setStatus(urgentPart.getExpireDate().after(now) ? 0 : 1); urgentPart.setStatus(urgentPart.getExpireDate().after(now) ? 0 : 1);
} }

@ -184,7 +184,8 @@ public class OemOrderController extends BladeController {
@ApiOperationSupport(order = 9) @ApiOperationSupport(order = 9)
@Operation(summary = "报价单分页", description = "传入mesOemStatement") @Operation(summary = "报价单分页", description = "传入mesOemStatement")
public R<IPage<PriceSheetVO>> priceSheetData(PriceSheetQuery priceSheetQuery, Query query) { public R<IPage<PriceSheetVO>> priceSheetData(PriceSheetQuery priceSheetQuery, Query query) {
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(priceSheetQuery, query); priceSheetQuery.setQuery(query);
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(priceSheetQuery);
Page<PriceSheetVO> data = pageR.getData(); Page<PriceSheetVO> data = pageR.getData();
Page<PriceSheetVO> pages = new Page<>(); Page<PriceSheetVO> pages = new Page<>();
// 复制分页属性 // 复制分页属性
@ -250,7 +251,8 @@ public class OemOrderController extends BladeController {
@Operation(summary = "报价单导出数据", description = "") @Operation(summary = "报价单导出数据", description = "")
public void exportPriceSheetData(PriceSheetQuery priceSheetQuery, Query query, HttpServletResponse response) { public void exportPriceSheetData(PriceSheetQuery priceSheetQuery, Query query, HttpServletResponse response) {
query.setSize(99999); query.setSize(99999);
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(priceSheetQuery, query); priceSheetQuery.setQuery(query);
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(priceSheetQuery);
Page<PriceSheetVO> data = pageR.getData(); Page<PriceSheetVO> data = pageR.getData();
List<PriceSheetVO> list = data.getRecords(); List<PriceSheetVO> list = data.getRecords();
List<PriceSheetExcel> excels = new ArrayList<>(); List<PriceSheetExcel> excels = new ArrayList<>();

@ -654,10 +654,10 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
query.setOcName(oemName); query.setOcName(oemName);
query.setInDateStart(putStoreDate); query.setInDateStart(putStoreDate);
query.setInDateEnd(putStoreDate); query.setInDateEnd(putStoreDate);
query.setQuery(new Query() {{
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(query, new Query() {{
setSize(99999); setSize(99999);
}}); }});
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(query);
if (pageR != null && pageR.getData() != null) { if (pageR != null && pageR.getData() != null) {
return pageR.getData().getRecords(); return pageR.getData().getRecords();
@ -675,9 +675,10 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
private List<PriceSheetVO> getPriceSheets(String oemName) { private List<PriceSheetVO> getPriceSheets(String oemName) {
PriceSheetQuery query = new PriceSheetQuery(); PriceSheetQuery query = new PriceSheetQuery();
query.setOcName(oemName); query.setOcName(oemName);
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(query, new Query() {{ query.setQuery(new Query() {{
setSize(99999); setSize(99999);
}}); }});
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(query);
if (pageR != null && pageR.getData() != null) { if (pageR != null && pageR.getData() != null) {
return pageR.getData().getRecords(); return pageR.getData().getRecords();
@ -1508,7 +1509,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
}); });
} else { } else {
//工序分组Map<工序, 报价列表> //工序分组Map<工序, 报价列表>
Map<String, List<PriceSheetVO>> priceSheetMap = priceSheetAllList.stream().collect(Collectors.groupingBy(PriceSheetVO::getGxinfo, () -> new TreeMap<>(Collections.reverseOrder()), // 按键的倒序排序 Map<String, List<PriceSheetVO>> priceSheetMap = priceSheetAllList.stream().filter(item -> item.getGxinfo() != null).collect(Collectors.groupingBy(PriceSheetVO::getGxinfo, () -> new TreeMap<>(Collections.reverseOrder()), // 按键的倒序排序
Collectors.collectingAndThen(Collectors.toList(), list -> { Collectors.collectingAndThen(Collectors.toList(), list -> {
// 对每个分组内的列表按生效日期倒序排序 // 对每个分组内的列表按生效日期倒序排序
return list.stream().sorted(Comparator.comparing(PriceSheetVO::getStartdat).reversed()).collect(Collectors.toList()); return list.stream().sorted(Comparator.comparing(PriceSheetVO::getStartdat).reversed()).collect(Collectors.toList());
@ -1573,9 +1574,10 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
if (minPutStoreTime != null) { if (minPutStoreTime != null) {
query.setInDateEnd(minPutStoreTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); query.setInDateEnd(minPutStoreTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
} }
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(query, new Query() {{ query.setQuery(new Query() {{
setSize(99999); setSize(99999);
}}); }});
R<Page<PriceSheetVO>> pageR = erpDataOemClient.priceSheetData(query);
if (pageR != null && pageR.getData() != null) { if (pageR != null && pageR.getData() != null) {
return pageR.getData().getRecords(); return pageR.getData().getRecords();
@ -1715,11 +1717,12 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
if (startTime == null || validTime == null || putStoreTime == null) { if (startTime == null || validTime == null || putStoreTime == null) {
return false; return false;
} }
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter fmt1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try { try {
LocalDate startDate = LocalDate.parse(startTime, fmt); LocalDate startDate = LocalDate.parse(startTime, fmt);
LocalDate validDate = LocalDate.parse(validTime, fmt); LocalDate validDate = LocalDate.parse(validTime, fmt);
LocalDate putStoreDate = LocalDate.parse(putStoreTime, fmt); LocalDate putStoreDate = LocalDate.parse(putStoreTime, fmt1);
if (preFlag) { if (preFlag) {
return !putStoreDate.isBefore(startDate); return !putStoreDate.isBefore(startDate);
} else { } else {

@ -6,6 +6,7 @@ import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.desk.produce.service.IDisTaskingService; import org.springblade.desk.produce.service.IDisTaskingService;
import org.springblade.desk.produce.service.IHandoverRecordService; import org.springblade.desk.produce.service.IHandoverRecordService;
import org.springblade.desk.produce.service.IPdaSaveService; import org.springblade.desk.produce.service.IPdaSaveService;
import org.springblade.desk.produce.service.IWorkOrderService;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
/** /**
@ -25,6 +26,8 @@ public class DisTaskingClient implements IDisTaskingClient {
private final IHandoverRecordService handoverRecordService; private final IHandoverRecordService handoverRecordService;
private final IWorkOrderService workOrderService;
@Override @Override
public boolean syncDisTasking() { public boolean syncDisTasking() {
return disTaskingService.syncDisTasking(false); return disTaskingService.syncDisTasking(false);
@ -44,4 +47,11 @@ public class DisTaskingClient implements IDisTaskingClient {
public boolean unBindEc() { public boolean unBindEc() {
return pdaSaveServiceImpl.unBindEc(); return pdaSaveServiceImpl.unBindEc();
} }
@Override
public boolean saveWorkOrderRun(String woId) {
workOrderService.addPrWorkOrderRun(woId);
return true;
}
} }

@ -133,7 +133,7 @@
AND mwor.run_type = #{query.runType} AND mwor.run_type = #{query.runType}
</if> </if>
<if test="query.orderCode != null and query.orderCode != ''"> <if test="query.orderCode != null and query.orderCode != ''">
AND two.wo_code LIKE CONCAT('%', CONCAT(#{query.orderCode}, '%')) AND mwor.wo_code LIKE CONCAT('%', CONCAT(#{query.orderCode}, '%'))
</if> </if>
<if test="query.partCode != null and query.partCode != ''"> <if test="query.partCode != null and query.partCode != ''">
AND tyo.part_code LIKE CONCAT('%', CONCAT(#{query.partCode}, '%')) AND tyo.part_code LIKE CONCAT('%', CONCAT(#{query.partCode}, '%'))

@ -295,5 +295,5 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
/** /**
* 生产运行记录 * 生产运行记录
*/ */
void addPrWorkOrderRun(WorkOrder workOrder); void addPrWorkOrderRun(String woId);
} }

@ -107,7 +107,7 @@ public class PlateAroundServiceImpl extends BaseServiceImpl<PlateAroundMapper, P
List<Long> tsIds = getTsIds(); List<Long> tsIds = getTsIds();
BeforePlatInVO beforePlatOutCardNo = baseMapper.getBeforePlatOutCardNo(wo.getId(), tsIds, AuthUtil.getUserId()); BeforePlatInVO beforePlatOutCardNo = baseMapper.getBeforePlatOutCardNo(wo.getId(), tsIds, AuthUtil.getUserId());
if (beforePlatOutCardNo == null) { if (beforePlatOutCardNo == null) {
throw new ServiceException("未找到镀前入库记录,无法出库!"); throw new ServiceException("未找到镀前入库记录,请上序班组镀前入库!");
} }
long count = this.count(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, beforePlatOutCardNo.getWpId()).eq(PlateAround::getPaType, PlateAround.BEFORE_PLAN_OUT)); long count = this.count(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, beforePlatOutCardNo.getWpId()).eq(PlateAround::getPaType, PlateAround.BEFORE_PLAN_OUT));
if (count > 0) { if (count > 0) {

@ -163,16 +163,22 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
@Override @Override
public R batchApproval(List<OemApproval> approvals) { public R batchApproval(List<OemApproval> approvals) {
List<String> errors = new ArrayList<>();
for (int i = 0; i < approvals.size(); i++) { for (int i = 0; i < approvals.size(); i++) {
OemApproval approval = approvals.get(i); OemApproval approval = approvals.get(i);
try { try {
R r = singleApprovalInNewTransaction(approval); R r = singleApprovalInNewTransaction(approval);
} catch (Exception e) { } catch (Exception e) {
log.error(String.format("审批失败,单据ID: {}", approval.getWorkOrderRunId()), e); String errMsg = "审批失败,单据ID: " + approval.getWorkOrderRunId();
log.error(errMsg, e);
errors.add(errMsg + "," + e.getMessage());
} }
} }
if (!errors.isEmpty()) {
return R.fail(String.join(";", errors));
}
return R.success("操作完成"); return R.success("操作完成");
} }
@ -203,10 +209,11 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
String wxCode = workOrderRun.getWoCode(); String wxCode = workOrderRun.getWoCode();
Oem oldOemCustomer = oemMapper.selectById(workOrderRun.getInCustomer()); Oem oldOemCustomer = oemMapper.selectById(workOrderRun.getInCustomer());
WorkOrderRun oldWorkOrderRun = workOrderRunMapper.selectById(wo.getWorId()); WorkOrderRun oldWorkOrderRun = workOrderRunMapper.selectById(wo.getWorId());
oldWorkOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_VOIDED); if (oldWorkOrderRun != null) {
workOrderRunMapper.updateById(oldWorkOrderRun); oldWorkOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_VOIDED);
wp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>() workOrderRunMapper.updateById(oldWorkOrderRun);
.eq(WorkPlan::getWoId, wo.getId())); }
wp = workPlanMapper.selectById(wo.getWpId());
wo.setCollaborate(workOrderRun.getCollaborate()); wo.setCollaborate(workOrderRun.getCollaborate());
// 若当前序小于等于已接收 // 若当前序小于等于已接收
@ -296,16 +303,31 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
} }
//根据外协工艺更新车间订单信息 //根据外协工艺更新车间订单信息
OemCraftAbilityEntity oa = null; OemCraftAbilityEntity oa = null;
Long oemId = null;
Long craftAbilityId = null;
if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) { if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) {
WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>() WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>()
.eq(WorkPlan::getId, wp.getNextWpId())); .eq(WorkPlan::getId, wp.getNextWpId()));
oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, nextWp.getOcId()) if (nextWp != null) {
.eq(OemCraftAbilityEntity::getCraftAbilityId, nextWp.getCaId())); oemId = nextWp.getOcId();
craftAbilityId = nextWp.getCaId();
oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, oemId)
.eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId));
}
} else { } else {
oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, wp.getOcId()) oemId = wp.getOcId();
.eq(OemCraftAbilityEntity::getCraftAbilityId, wp.getCaId())); craftAbilityId = wp.getCaId();
oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, oemId)
.eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId));
} }
//更改订单调度员和计划员 //更改订单调度员和计划员
if (oa == null) {
Oem oem = oemMapper.selectById(oemId);
String oemName = oem != null ? oem.getOcName() : "未知厂商";
String errorMsg = String.format("外协厂商【%s】(ID:%s)的工艺能力(ID:%s)未维护,可在基础数据-外协工艺能力页面维护", oemName, oemId, craftAbilityId);
log.error(errorMsg);
throw new ServiceException(errorMsg);
}
workOrderService.maintainOrder(wo, oa.getPlanner(), oa.getDispatcher(), workOrderRun, true); workOrderService.maintainOrder(wo, oa.getPlanner(), oa.getDispatcher(), workOrderRun, true);
} }
Date date = DateUtil.plusDays(wo.getSendDownTime(), days); Date date = DateUtil.plusDays(wo.getSendDownTime(), days);

@ -2910,7 +2910,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
@Override @Override
public void addPrWorkOrderRun(WorkOrder workOrder) { public void addPrWorkOrderRun(String woId) {
WorkOrder workOrder = this.getById(woId);
if (workOrder == null) {
throw new ServiceException("请核实车间订单[" + woId + "]信息是否有误!!!!");
}
WorkPlan prWorkPlan = workPlanService.getById(workOrder.getWpId()); WorkPlan prWorkPlan = workPlanService.getById(workOrder.getWpId());
if (prWorkPlan.getOcId() != null) { if (prWorkPlan.getOcId() != null) {
//产生外协生产进度记录信息 //产生外协生产进度记录信息

@ -43,7 +43,8 @@ public class ErpDataOemClientImpl implements IErpDataOemClient {
@Override @Override
@GetMapping(PRICE_SHEET_DATA) @GetMapping(PRICE_SHEET_DATA)
public R<Page<PriceSheetVO>> priceSheetData(@SpringQueryMap PriceSheetQuery priceSheetQuery, @SpringQueryMap Query query) { public R<Page<PriceSheetVO>> priceSheetData(@SpringQueryMap PriceSheetQuery priceSheetQuery) {
Query query = priceSheetQuery.getQuery();
IPage<PriceSheetVO> iPages = erpDataOemService.priceSheetData(Condition.getPage(query), priceSheetQuery); IPage<PriceSheetVO> iPages = erpDataOemService.priceSheetData(Condition.getPage(query), priceSheetQuery);
Page<PriceSheetVO> pages = new Page<>(); Page<PriceSheetVO> pages = new Page<>();

@ -31,10 +31,10 @@
AND a.remark LIKE concat(concat('%', #{query.memo}),'%') AND a.remark LIKE concat(concat('%', #{query.memo}),'%')
</if> </if>
<if test="query.inDateStart != null and query.inDateStart != ''"> <if test="query.inDateStart != null and query.inDateStart != ''">
AND to_date(${query.inDateStart},'YYYY-MM-DD'), <![CDATA[ >= ]]> a.startdat AND #{query.inDateStart} <![CDATA[ >= ]]> a.startdat
</if> </if>
<if test="query.inDateEnd != null and query.inDateEnd != ''"> <if test="query.inDateEnd != null and query.inDateEnd != ''">
AND to_date(${query.inDateEnd},'YYYY-MM-DD'), <![CDATA[ <= ]]> a.validdat AND #{query.inDateEnd} <![CDATA[ <= ]]> a.validdat
</if> </if>
<if test="query.validflags != null and query.validflags != ''"> <if test="query.validflags != null and query.validflags != ''">
AND a.validflag IN AND a.validflag IN

@ -354,7 +354,6 @@ public class StClassRequestServiceImpl extends BaseServiceImpl<StClassRequestMap
record.setUserId(picker); record.setUserId(picker);
record.setDeptId(user.getDeptId()); record.setDeptId(user.getDeptId());
record.setCreateUser(user.getUserId()); record.setCreateUser(user.getUserId());
record.setUserId(crMan);
/* 原明细字段 */ /* 原明细字段 */
record.setGoodsId(stock.getGoodsId()); record.setGoodsId(stock.getGoodsId());

Loading…
Cancel
Save