fix: 分拣送空托错误、看板数据、工单号重复并发问题
This commit is contained in:
@@ -41,6 +41,6 @@ public class LogMessageConstant {
|
||||
/** 背景颜色:黄色 */
|
||||
public final static String BACKGROUND_YELLOW = "\u001B[43m";
|
||||
/** 索引路径 */
|
||||
public final static String INDEX_DIR = "D:\\lucene\\index";
|
||||
public final static String INDEX_DIR = "E:\\lucene\\index";
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
@@ -59,6 +60,7 @@ public class SysCodeRuleServiceImpl extends ServiceImpl<SysCodeRuleMapper, SysCo
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(propagation=Propagation.REQUIRES_NEW)
|
||||
public String codeDemo(Map form) {
|
||||
String code = (String) form.get("code");
|
||||
String id = codeRuleMapper.selectOne(new LambdaQueryWrapper<SysCodeRule>().eq(SysCodeRule::getCode, code)).getId();
|
||||
|
||||
@@ -13,6 +13,8 @@ public class ProductTaskVo {
|
||||
private String workorder_code;
|
||||
private String team;
|
||||
private String material_name;
|
||||
private String material_spec;
|
||||
private String material_model;
|
||||
private String planproducestart_date;
|
||||
private String plan_qty;
|
||||
private String real_qty;
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
<mapper namespace="org.nl.wms.cockpit.service.mapper.CockPitMapper">
|
||||
<select id="getPressProductHeaderList" resultType="org.nl.wms.cockpit.service.dao.PressProductHeaderVo">
|
||||
SELECT
|
||||
SUM(w.plan_qty) AS plan_qty,
|
||||
SUM(w.real_qty) AS real_qty,
|
||||
SUM(w.qualified_qty) AS qualified_qty,
|
||||
SUM(w.unqualified_qty) AS unqualified_qty
|
||||
IF(LENGTH(SUM(w.plan_qty))>0,SUM(w.plan_qty),0) AS plan_qty,
|
||||
IF(LENGTH(SUM(w.real_qty))>0,SUM(w.real_qty),0) AS real_qty,
|
||||
IF(LENGTH(SUM(w.qualified_qty))>0,SUM(w.qualified_qty),0) AS qualified_qty,
|
||||
IF(LENGTH(SUM(w.unqualified_qty))>0,SUM(w.unqualified_qty),0) AS unqualified_qty
|
||||
FROM
|
||||
pdm_bd_workorder w
|
||||
WHERE
|
||||
@@ -38,15 +38,17 @@
|
||||
</select>
|
||||
<select id="getProductionTaskList" resultType="org.nl.wms.cockpit.service.dao.ProductTaskVo">
|
||||
SELECT
|
||||
w.point_name AS device,
|
||||
p.ext_point_code AS device,
|
||||
w.workorder_code,
|
||||
w.team,
|
||||
m.material_name,
|
||||
m.material_spec,
|
||||
m.material_model,
|
||||
w.planproducestart_date,
|
||||
w.plan_qty,
|
||||
w.real_qty,
|
||||
w.unqualified_qty,
|
||||
FORMAT((w.qualified_qty / w.plan_qty) * 100, 1) AS qualified_rate,
|
||||
IF(LENGTH(w.unqualified_qty)>0,w.unqualified_qty,0) AS unqualified_qty,
|
||||
IF(LENGTH(FORMAT((w.qualified_qty / w.plan_qty) * 100, 1)>0),FORMAT((w.qualified_qty / w.plan_qty) * 100, 1),0) AS qualified_rate,
|
||||
CASE w.workorder_status
|
||||
WHEN '1' THEN '未生产'
|
||||
WHEN '2' THEN '已下发'
|
||||
@@ -55,12 +57,13 @@
|
||||
WHEN '5' THEN '完成'
|
||||
ELSE ''
|
||||
END AS workorder_status,
|
||||
w.operator,
|
||||
IF(LENGTH(w.operator)>0,w.operator,'-') AS operator,
|
||||
IF(LENGTH(w.realproducestart_date)>0,w.realproducestart_date,'-') AS realproducestart_date,
|
||||
IF(LENGTH(w.realproduceend_date)>0,w.realproduceend_date,'-') AS realproduceend_date
|
||||
FROM
|
||||
`pdm_bd_workorder` w
|
||||
LEFT JOIN md_base_material m ON m.material_id = w.material_id
|
||||
LEFT JOIN sch_base_point p ON w.point_code = p.point_code
|
||||
WHERE w.region_code = 'YZ'
|
||||
ORDER BY w.team DESC, w.workorder_status
|
||||
</select>
|
||||
|
||||
@@ -45,6 +45,7 @@ public class AutoIssueWorkOrder {
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
// todo: 获取每台设备的第一条工单
|
||||
// 获取所有设备号
|
||||
List<String> deviceCodes = workorderService.getTheDayUnProducedDevice();
|
||||
// 查找该设备未生产的工单去下发
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
FROM
|
||||
`pdm_bd_workorder` pw
|
||||
LEFT JOIN md_base_material mm ON mm.material_id = pw.material_id
|
||||
WHERE pw.region_code = 'FJ' AND pw.point_code LIKE 'RG%' AND pw.workorder_status IN ('1','3','4')
|
||||
WHERE pw.region_code = 'FJ' AND pw.point_code LIKE 'RG%' AND pw.workorder_status IN ('1','2','3','4')
|
||||
</select>
|
||||
<select id="getRunningTaskByStart" resultType="org.nl.wms.pda.service.dao.vo.TaskShowVo">
|
||||
SELECT
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.pdm.workorder.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -10,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
@@ -35,6 +37,7 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum;
|
||||
import org.nl.wms.util.CommonUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -77,18 +80,21 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
return pages;
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public void create(PdmBdWorkorder entity) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
|
||||
String today = DateUtil.format(DateUtil.date(), "yyyyMMdd");
|
||||
// 点位编码和点位名称为父点位
|
||||
entity.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
entity.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER"));
|
||||
entity.setCreate_id(currentUserId);
|
||||
entity.setCreate_name(nickName);
|
||||
entity.setCreate_time(now);
|
||||
entity.setTeam(CommonUtils.getDayShift());
|
||||
entity.setProduce_date(today);
|
||||
entity.setUpdate_id(currentUserId);
|
||||
entity.setUpdate_name(nickName);
|
||||
entity.setUpdate_time(now);
|
||||
|
||||
@@ -375,10 +375,9 @@ public class FJMKTask extends AbstractTask {
|
||||
PointUtils.setUpdateByType(fjcPointObj, taskFinishedType);
|
||||
pointService.updateById(fjcPointObj);
|
||||
}
|
||||
// 组盘设置已经解绑
|
||||
SchBaseVehiclematerialgroup vehicleMaterialGroupObj =
|
||||
vehiclematerialgroupService.getById(taskObj.getGroup_id());
|
||||
vehicleMaterialGroupObj.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
// vehicleMaterialGroupObj.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
vehicleMaterialGroupObj.setTask_code(taskObj.getTask_code());
|
||||
vehicleMaterialGroupObj.setPoint_code(bzxPointObj.getPoint_code()); // 当前位置
|
||||
vehicleMaterialGroupObj.setPoint_name(bzxPointObj.getPoint_name());
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.sch.task_manage.task.tasks.fj;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.esotericsoftware.minlog.Log;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.system.service.notice.ISysNoticeService;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
@@ -211,7 +212,11 @@ public class FJSKTask extends AbstractTask {
|
||||
TaskUtils.setGroupUpdateByType(vehicleMaterialGroupObj, taskFinishedType);
|
||||
vehiclematerialgroupService.updateById(vehicleMaterialGroupObj);
|
||||
// todo: 上报mes, 物料出库
|
||||
wmsToMesService.reportSemiProductionInfoOut(taskObj.getGroup_id());
|
||||
try {
|
||||
wmsToMesService.reportSemiProductionInfoOut(taskObj.getGroup_id());
|
||||
} catch (Exception e) {
|
||||
Log.error("上报MES物料出库失败, {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
|
||||
|
||||
@@ -111,13 +111,4 @@ public class CommonUtils {
|
||||
return list;
|
||||
}
|
||||
|
||||
public static String CurrentData() {
|
||||
// 获取当前日期
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 定义日期格式
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
// 格式化日期为"20231030"
|
||||
String formattedDate = currentDate.format(formatter);
|
||||
return formattedDate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ spring:
|
||||
freemarker:
|
||||
check-template-location: false
|
||||
profiles:
|
||||
active: test
|
||||
active: prod
|
||||
jackson:
|
||||
time-zone: GMT+8
|
||||
data:
|
||||
|
||||
@@ -153,5 +153,7 @@ public class TestDemo {
|
||||
void testNumberStr() {
|
||||
System.out.println("1234564".matches("\\d+"));
|
||||
System.out.println("1234你好564".matches("\\d+"));
|
||||
System.out.println(DateUtil.format(DateUtil.date(), "yyMMdd"));
|
||||
System.out.println(String.format("%03d", 12));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user