Commit 48aee805 authored by 李驰骋's avatar 李驰骋

报工调整

parent c226bdb5
......@@ -90,21 +90,21 @@ public class ProTaskMobController extends BaseController {
public List<Map<String, String>> buttonList(@PathVariable Long[] taskWorkunitIds) {
ExceptionUtil.checkTrueThrowException(taskWorkunitIds.length == 0, "参数非法");
List<Map<String, String>> result = new ArrayList<>();
for (Long workunitId : taskWorkunitIds) {
boolean b1 = proMaterialRequestService.checkMaterialRequestIsExist(workunitId);
boolean b2 = proRecoilMaterialService.checkRecoilMaterialIsExist(workunitId);
boolean b3 = proWorkOrderProcessToolService.checkProcessToolIsExsit(workunitId);
boolean b4 = proMaterialRequestService.checkMaterialRequestExist(workunitId);
Map<String, String> map = new HashMap<>();
map.put("materialView", b1 ? "1" : "0");
map.put("recoilMaterialView", b2 ? "1" : "0");
map.put("processToolView", b3 ? "1" : "0");
map.put("MaterialRequestView", b4 ? "1" : "0");
map.put("MaterialReturnView", b4 ? "1" : "0");
map.put("taskWorkunitId", String.valueOf(workunitId));
result.add(map);
}
// for (Long workunitId : taskWorkunitIds) {
// boolean b1 = proMaterialRequestService.checkMaterialRequestIsExist(workunitId);
// boolean b2 = proRecoilMaterialService.checkRecoilMaterialIsExist(workunitId);
// boolean b3 = proWorkOrderProcessToolService.checkProcessToolIsExsit(workunitId);
// boolean b4 = proMaterialRequestService.checkMaterialRequestExist(workunitId);
//
// Map<String, String> map = new HashMap<>();
// map.put("materialView", b1 ? "1" : "0");
// map.put("recoilMaterialView", b2 ? "1" : "0");
// map.put("processToolView", b3 ? "1" : "0");
// map.put("MaterialRequestView", b4 ? "1" : "0");
// map.put("MaterialReturnView", b4 ? "1" : "0");
// map.put("taskWorkunitId", String.valueOf(workunitId));
// result.add(map);
// }
return result;
}
......
......@@ -224,6 +224,8 @@ public class ProWorkorderQuery extends BaseEntity {
*/
private Long attr4;
private Long taskWorkunitId;
private String parentId;
@TableField(exist = false)
......
......@@ -63,9 +63,13 @@ public interface ProWorkorderMapper extends BaseMapper<ProWorkorder> {
List<ProWorkorder> selectListByQw(@Param("ew") QueryWrapper<ProWorkorder> query);
@Select(value = "select distinct t3.workorder_id from pro_task_workunit t1 inner join pro_task t2 on t1.task_id = t2.task_id inner join pro_workorder t3 on t2.arrange_code = t3.arrange_code ${ew.customSqlSegment}")
@Select(value = "select distinct t3.workorder_id from pro_task_workunit t1 inner join pro_task t2 on t1.task_id = t2.task_id left join pro_task_workorder t3 on t2.task_id = t3.task_id ${ew.customSqlSegment}")
List<Long> selectIdsByQw(@Param("ew") QueryWrapper<ProWorkorder> query);
@Select(value = "select distinct t1.*,i.item_type_name,i.item_type_id from pro_workorder t1 left join pro_task_workorder t2 on t1.workorder_id = t2.workorder_id " +
"left join pro_task t3 on t2.task_id = t3.task_id left join pro_task_workunit t4 on t3.task_id = t4.task_id left join md_item i on t1.product_id = i.item_id ${ew.customSqlSegment}")
List<ProWorkorder> selectJoinTaskWorkunitByQw(@Param("ew") QueryWrapper<ProWorkorder> query);
/**
* 新增生产工单
......
......@@ -137,7 +137,7 @@ public interface ProTaskMapper extends BaseMapper<ProTask> {
void updateProTaskStatus(@Param("taskId") Long taskId, @Param("status") String status);
@Select(value = "select t1.*,t3.workorder_code, t3.workorder_id from pro_task t1 inner join pro_workorder t3 on t1.arrange_code = t3.arrange_code inner join pro_task_workunit t4 on t4.task_id = t1.task_id ${ew.customSqlSegment}")
@Select(value = "select t1.*,t2.workorder_code, t3.workorder_id from pro_task t1 inner join pro_task_workorder t3 on t1.task_id = t3.task_id left join pro_workorder t2 on t3.workorder_id = t2.workorder_id inner join pro_task_workunit t4 on t4.task_id = t1.task_id ${ew.customSqlSegment}")
List<ProTaskVo> selectProTaskJoinWorkorder(@Param("ew") QueryWrapper<ProTask> query);
......
......@@ -488,7 +488,7 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
String arrangeCode = proTask.getArrangeCode();
QueryWrapper<ProWorkorder> wrapper = new QueryWrapper<>();
wrapper.eq("t1.arrange_code", arrangeCode);
wrapper.eq("t1.workorder_code", arrangeCode);
wrapper.notIn("t1.status", Arrays.asList(WorkorderStatusEnum.CLOSE.getValue(), WorkorderStatusEnum.CANCEL.getValue(), WorkorderStatusEnum.CANCELED.getValue()));
List<ProWorkorder> sourceWorkorders = proWorkorderMapper.selectListByQw(wrapper);
......@@ -542,10 +542,6 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
ExceptionUtil.checkTrueThrowException(CollectionUtil.isEmpty(arrangeList), "编排单列表为空");
double waitQuantity = proTaskService.selectBaseById(proTask.getTaskId()).getQuantityWait().doubleValue();
// ProTaskWorkunit proTaskWorkunit = proTaskWorkunitService.selectProTaskWorkunitByTaskWorkunitId(mainFeedBack.getTaskWorkunitId());
// if (Objects.equals(proTaskWorkunit.getTaskType(), TaskConst.SPLIT_TASK)) {
//
// }
// 可报工数为空平均分配
if (waitQuantity == 0) {
feedbackPercentageSplit(arrangeList, mainFeedBackVal, feedbackQuantityDouble, splitFeedbackWorkorderList, feedbackWorkorderMap, itemSecond);
......@@ -589,14 +585,9 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
double btimeMin = btimeSecond / 60;
feedBackTimeMap.put("mtimeSecond", mtimeSecond);
feedBackTimeMap.put("btimeSecond", btimeSecond);
// 发送报工
proFeedback.setMachineTime(DataUtil.getNormalData(mtimeMin, "0"));
proFeedback.setBreakTime(DataUtil.getNormalData(btimeMin, "0"));
sendSapService(proFeedback);
log.info("taskId:" + mainFeedBackVal.getTaskId() + ",workorderId:" + mainFeedBackVal.getWorkorderId() + "," + JSONObject.toJSONString(feedBackTimeMap));
// 保存数据
proFeedback.setCreateTime(new Date());
this.insertProFeedback(proFeedback);
......
......@@ -541,46 +541,16 @@ public class ProWorkorderServiceImpl implements IProWorkorderService {
@Override
public List<ProWorkorderVo> getFeedBackRecord(ProWorkorderQuery proWorkorder) {
List<ProWorkorder> proWorkorders = proWorkorderMapper.selectListByQw(new QueryWrapper<ProWorkorder>().eq("arrange_code", proWorkorder.getArrangeCode()));
List<ProWorkorder> proWorkorders = proWorkorderMapper.selectJoinTaskWorkunitByQw(new QueryWrapper<ProWorkorder>().eq("t4.task_workunit_id", proWorkorder.getTaskWorkunitId()));
ExceptionUtil.checkTrueThrowException(CollectionUtil.isEmpty(proWorkorders), "没有查询到对应的工单");
List<ProWorkorderVo> rst = new ArrayList<>();
proWorkorders.forEach(workorder -> {
ProWorkorderVo workorderVo = workorder.deepCopyObj(ProWorkorderVo.class);
ProWorkOrderSoDirective queryDirective = new ProWorkOrderSoDirective();
queryDirective.setWorkorderId(workorder.getWorkorderId());
List<ProWorkOrderSoDirective> directiveList = proWorkOrderSoDirectiveService.selectProWorkOrderSoDirectiveList(queryDirective);
workorderVo.setSaleDirectiveList(directiveList);
if(!directiveList.isEmpty()){
workorderVo.setLossIndividuallyWrap(StringUtils.defaultString(directiveList.get(0).getLossPack(), "N"));
workorderVo.setPackType(directiveList.get(0).getPackType());
workorderVo.setPackUnitOfMeasure(directiveList.get(0).getPackUnit());
}
//装箱数量默认取指令数据,多条时取随机取一条
if (workorder.getUsageEncasementNum() == null && directiveList.size() > 0) {
ProWorkOrderSoDirective directive = directiveList.get(0);
if (directive != null) {
if (NumberUtil.isNumber(directive.getPackingNum())) {
workorderVo.setUsageEncasementNum(new BigDecimal(directive.getPackingNum()).intValue());
}
}
}
if (CollectionUtil.isNotEmpty(directiveList) && directiveList.size() == 1) {
if (directiveList.get(0).getPackNum() != null && workorder.getUsagePackNum() == null) {
workorderVo.setUsagePackNum(directiveList.get(0).getPackNum().intValue());
}
}
Double v = proFeedbackService.selectQuantityQualifySum(new ProFeedback(null, workorderVo.getWorkorderId(), null, null));
double val = workorderVo.getQuantity().doubleValue() - v;
workorderVo.setQuantityWait(BigDecimal.valueOf(val < 0 ? 0 : val));
rst.add(workorderVo);
});
return rst;
}
......
......@@ -150,8 +150,6 @@ public class ProTaskServiceImpl implements IProTaskService {
@Autowired
private IProStartWorkService proStartWorkService;
@Autowired
private SapService sapService;
@Autowired
private ProFdQrcodePrintRecordServiceImpl proFdQrcodePrintRecordService;
@Autowired
private AlgorithmResultProcess algorithmResultProcess;
......@@ -376,12 +374,8 @@ public class ProTaskServiceImpl implements IProTaskService {
map.put("AllQuantity", "1");
map.put("nextMaintenPeriod", proWorkOrderProcessTool.getQuantity().toString());
result.add(map);
// ProWorkOrderProcessTool proWorkOrderProcessTool = toolIdAndProcessToolMap.get(toolId);
// proWorkOrderProcessToolsNew.add(proWorkOrderProcessTool);
// requestNum = requestNum + proWorkOrderProcessTool.getQuantity().intValue();
}
return result;
// proWorkOrderProcessTools = proWorkOrderProcessToolsNew;
} else {
return result;
}
......@@ -960,16 +954,6 @@ public class ProTaskServiceImpl implements IProTaskService {
double taskQuantityWaitDouConst = taskQuantityWaitConst.doubleValue();
double feedbackQualityDouConst = feedbackQualifyConst.doubleValue();
// if (Objects.equals(taskWorkunit.getTaskType(), TaskConst.SPLIT_TASK)) {
// BigDecimal canBeReportQuantity = taskWorkunit.getQuantity().subtract(taskWorkunit.getQuantityProduced());
// ExceptionUtil.checkTrueThrowException(canBeReportQuantity.doubleValue() <= 0d, "可报工数量不够");
// double min = Math.min(taskQuantityWaitDouConst, canBeReportQuantity.doubleValue());
// ExceptionUtil.checkTrueThrowException(feedbackQualityDouConst > min, "可报工数量不够");
// if (feedbackQualityDouConst >= min) {
// taskWorkunit.setStatus(FINISHED.getStatus());
// }
// }
BigDecimal quantityWaitVal = BigDecimal.ZERO;
BigDecimal feedbackQualityVal = BigDecimal.valueOf(feedbackQualityDouConst);
......@@ -1001,12 +985,6 @@ public class ProTaskServiceImpl implements IProTaskService {
feedbackQualityVal = BigDecimal.valueOf(Math.min(maxWorkunitQuantityConst, feedbackQualityDouConst));
}
}
// else {
//
// // 第一次进入
// feedbackQuantitySwap = feedbackQuantity;
// }
quantityWaitVal = taskQuantityWaitConst.subtract(feedbackQualityVal);
} else {
......@@ -1086,15 +1064,11 @@ public class ProTaskServiceImpl implements IProTaskService {
} else {
proStartWorkService.updateObj(feedback);
}
//按派工表保存报工记录
LinkedHashMap<String, ProFeedbackSplitInfo> feedbackWorkorder = proFeedbackService.taskFeedback(task, feedback);
//查询关联下道工序
ProTask nextTask = this.getNextTaskByTaskId(feedback.getTaskId());
if (nextTask != null) {
// 下道任务待加工数累加合格数量
nextTask.setQuantityWait(DataUtil.getNormalData(nextTask.getQuantityWait()).add(feedbackQualifyConst));
List<ProTaskWorkunit> proTaskWorkunits = proTaskWorkunitMapper.selectListByQw(new QueryWrapper<ProTaskWorkunit>().eq("task_id", nextTask.getTaskId()));
......@@ -1102,14 +1076,9 @@ public class ProTaskServiceImpl implements IProTaskService {
x.setStatus(BEGINNING.getStatus());
proTaskWorkunitMapper.updateProTaskWorkunit(x);
});
this.updateProTask(nextTask);
}
this.updateProTask(task);
if (feedbackQualityVal.doubleValue() > 0) {
//查询关联下道工序
//如果为最后一道工序,回写工单数量
......@@ -1123,24 +1092,15 @@ public class ProTaskServiceImpl implements IProTaskService {
});
}
}
proTaskWorkunitService.updateProTaskWorkunit(taskWorkunit);
//打印记录
if ("1".equals(feedback.getPrintContents())) {
proFdQrcodePrintRecordService.insertProFdQrcodePrintRecordfeedback(feedback);
}
//扣减刀具寿命
proTaskWorkunitService.updateProTaskWorkunitlife(feedback);
//报工满足条件下架刀模版具
tmToolMachinesService.feedbackToolDismount(taskWorkunit);
return response;
}
......@@ -1268,9 +1228,6 @@ public class ProTaskServiceImpl implements IProTaskService {
feedback.setWorkorderSoSizeItemIds(proFdPackagePrintRecord.getWorkorderSoSizeItemId()+"");
}
feedback.setWorkorderSoSizes(proFdPackagePrintRecord.getWorkorderSoSizes());
//SAP接口报工
// proStartWorkService.updateObj(feedback);
// proFeedbackService.packageSendSapService(feedback);
proFeedbackService.insertProFeedback(feedback);
//返回包装标签打印信息
if (StringUtils.isNotEmpty(feedback.getPrintTemplate())) {
......@@ -1458,14 +1415,6 @@ public class ProTaskServiceImpl implements IProTaskService {
proWorkorderService.updateProWorkorderStatus(Collections.singletonList(workorderId), WorkorderStatusEnum.PRODUCING);
}
}
// inspectionOrders
//首次开工增加首检单
if (orderList.size() == 1 && Objects.equals(orderList.get(0).getWorkorderType(), WorkorderConst.WORK_ORDER_PROTO_TYPE)) {
} else {
qcIpqcService.insertInspectionOrder(task, QcConst.FIRST);
}
proRecoilMaterialService.checkRecoilMaterial(task);
proMaterialRequestService.checkMaterialRequest(task);
......@@ -1862,23 +1811,6 @@ public class ProTaskServiceImpl implements IProTaskService {
}
private void closeSapWorkorderUpdate(List<Long> workorderIds) {
List<ProWorkorder> proWorkorders = proWorkorderMapper.selectListByQw(new QueryWrapper<ProWorkorder>().in("workorder_id", workorderIds));
Set<String> workorderCodes = proWorkorders.stream().map(ProWorkorder::getWorkorderCode).filter(Objects::nonNull).collect(Collectors.toSet());
List<Map<String, String>> objects = new ArrayList<>();
for (String workorderCode : workorderCodes) {
Map<String, String> map = new HashMap<>();
map.put("AUFNR", workorderCode);
map.put("STATUS", WorkorderStatusEnum.SCHEDULED.getValue());
objects.add(map);
}
logger.info(String.format("排产发送SAP关闭工单请求参数:%s", JSON.toJSONString(objects)));
String s = sapService.updateWorkorderStatus(JSON.toJSONString(objects));
logger.info(String.format("排产发送SAP关闭工单返回结果:%s", JSON.toJSONString(s)));
}
@Override
public ProTask selectBaseById(Long taskId) {
List<ProTask> proTasks = proTaskMapper.selectListByQw(new QueryWrapper<ProTask>().eq("task_id", taskId));
......
......@@ -127,10 +127,8 @@ public class QcIpqcServiceImpl implements IQcIpqcService {
@Override
public void insertInspectionOrder(ProTask task, String ipqcType) {
ProTask proTask = proTaskService.selectBaseById(task.getTaskId());
QcIpqc ipqc = new QcIpqc();
ipqc.setTaskId(proTask.getTaskId());
// ipqc.setTaskId(task.getTaskWorkunitId());
ipqc.setIpqcType(ipqcType);
List<QcIpqc> ipqcList = this.selectQcIpqcList(ipqc);
if (CollectionUtil.isNotEmpty(ipqcList)) {
......
......@@ -100,15 +100,14 @@ public class WmIssueLineServiceImpl implements IWmIssueLineService {
String workorderCode = wmIssueLine.getWorkorderCode();
String plNum = wmIssueLine.getPlNum();
Long processId = proTaskMapper.selectProTaskByTaskId(taskId).getProcessId();
Set<String> workorderCodeSet = proTaskMapper.selectProTaskJoinWorkorder(new QueryWrapper<ProTask>().eq("t1.task_id", taskId)).stream().map(ProTaskVo::getWorkorderCode).collect(Collectors.toSet());
if (StringUtils.isNotEmpty(workorderCode)) {
workorderCodeSet.add(workorderCode);
}
List<ProTaskVo> tempTaskVoList = proTaskMapper.selectProTaskJoinWorkorder(new QueryWrapper<ProTask>().eq("t1.task_id", taskId));
Set<Long> workorderIdSet = tempTaskVoList.stream().map(ProTaskVo::getWorkorderId).collect(Collectors.toSet());
Set<String> workorderCodeSet = tempTaskVoList.stream().map(ProTaskVo::getWorkorderCode).collect(Collectors.toSet());
List<WmIssueLineJoinBean> wmIssueLineJoinBeans=null;
//查看当前工序又没有物料
QueryWrapper<ProWorkOrderProcess> itemQuery = new QueryWrapper<>();
if(StringUtils.isEmpty(workorderCode)){
itemQuery.in("t2.workorder_code",workorderCodeSet);
itemQuery.in("t2.workorder_id",workorderIdSet);
}else{
itemQuery.eq("t2.workorder_code",workorderCode);
}
......@@ -119,7 +118,6 @@ public class WmIssueLineServiceImpl implements IWmIssueLineService {
//根据工单查询领用明细
QueryWrapper<WmIssueLineJoinBean> queryWrapper = new QueryWrapper<>();
if (StringUtils.isEmpty(workorderCode)) {
queryWrapper.in("t2.workorder_code", workorderCodeSet);
} else {
queryWrapper.in("t2.workorder_code", workorderCode);
......@@ -129,9 +127,7 @@ public class WmIssueLineServiceImpl implements IWmIssueLineService {
for (WmIssueLineJoinBean wmIssueLineJoinBean : wmIssueLineJoinBeans) {
wmIssueLineJoinBean.setTotalBackNum(wmIssueLineJoinBean.getTotalBackNum() == null ? BigDecimal.ZERO : wmIssueLineJoinBean.getTotalBackNum().setScale(3, RoundingMode.UP));
}
}
return wmIssueLineJoinBeans;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment