opt:优化
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
|
||||
<if test="param.struct_code != null and param.struct_code != ''">
|
||||
AND
|
||||
attr.struct_code LIKE #{param.struct_code}
|
||||
attr.struct_code LIKE CONCAT('%', #{params.struct_code}, '%')
|
||||
</if>
|
||||
|
||||
<if test="param.material_code != null and param.material_code != ''">
|
||||
@@ -130,8 +130,8 @@
|
||||
|
||||
<if test="param.struct_code != null and param.struct_code != ''">
|
||||
AND
|
||||
(attr.struct_code LIKE #{param.struct_code} or
|
||||
attr.struct_name LIKE #{param.struct_code} )
|
||||
(attr.struct_code LIKE CONCAT('%', #{param.struct_code}, '%') or
|
||||
attr.struct_name LIKE CONCAT('%', #{param.struct_code}, '%') )
|
||||
</if>
|
||||
|
||||
<if test="param.material_code != null and param.material_code != ''">
|
||||
@@ -298,7 +298,7 @@
|
||||
|
||||
<if test="params.struct_code != null and params.struct_code != ''">
|
||||
AND
|
||||
(attr.struct_code LIKE CONCAT('%', #{params.struct_code}, '%')
|
||||
attr.struct_code LIKE CONCAT('%', #{params.struct_code}, '%')
|
||||
</if>
|
||||
|
||||
<if test="params.pcsn != null and params.pcsn != ''">
|
||||
|
||||
@@ -95,8 +95,9 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
String is_have = (String) whereJson.get("is_have");
|
||||
|
||||
return structattrMapper.selectPage(new Page<>(page.getPage() + 1 ,page.getSize()), new LambdaQueryWrapper<Structattr>()
|
||||
.like(StrUtil.isNotEmpty(search),Structattr::getStruct_code, search)
|
||||
.like(StrUtil.isNotEmpty(search),Structattr::getStruct_name, search)
|
||||
.and(StrUtil.isNotEmpty(search),lam -> lam.like(StrUtil.isNotEmpty(search), Structattr::getStruct_code, search)
|
||||
.or().like(StrUtil.isNotEmpty(search), Structattr::getStruct_name, search)
|
||||
)
|
||||
.eq(StrUtil.isNotEmpty(stor_id),Structattr::getStor_id, stor_id)
|
||||
.eq(StrUtil.isNotEmpty(sect_id),Structattr::getSect_id, sect_id)
|
||||
.eq(StrUtil.isNotEmpty(lock_type),Structattr::getLock_type, lock_type)
|
||||
|
||||
@@ -3,8 +3,10 @@ package org.nl.wms.pda_manage.sch_manage.service.impl;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.language.LangBehavior;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||
@@ -14,7 +16,9 @@ import org.nl.wms.ext_manage.service.util.AcsResponse;
|
||||
import org.nl.wms.pda_manage.sch_manage.service.PdaSchTaskService;
|
||||
import org.nl.wms.pda_manage.util.PdaResponse;
|
||||
import org.nl.wms.sch_manage.enums.TaskEnum;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBaseTaskMapper;
|
||||
@@ -64,6 +68,19 @@ public class PdaSchTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
@Autowired
|
||||
private TaskFactory taskFactory;
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
|
||||
/**
|
||||
* 定点作业——经与项目经理沟通,已经转化成脱机作业。不改变库位。
|
||||
* @param whereJson {
|
||||
* start_point_code:起点点位
|
||||
* end_point_code:终点点位
|
||||
* storagevehicle_code:载具编码
|
||||
* acs_type:acs任务类型
|
||||
* }
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public JSONObject pointTask(JSONObject whereJson) {
|
||||
@@ -80,10 +97,29 @@ public class PdaSchTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
if (ObjectUtil.isEmpty(end_point)) {
|
||||
throw new BadRequestException(LangBehavior.language("pda_manage.end_point_not_exist"));
|
||||
}
|
||||
start_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
|
||||
iStructattrService.updateById(start_point);
|
||||
end_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
|
||||
iStructattrService.updateById(end_point);
|
||||
|
||||
//查询是否有执行中的点位
|
||||
//找到空点位正在执行的任务
|
||||
List<SchBaseTask> taskingSchBaseTaskList = iSchBaseTaskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||
.and(wp -> wp
|
||||
.eq(SchBaseTask::getPoint_code1, end_point.getStruct_code())
|
||||
.or()
|
||||
.eq(SchBaseTask::getPoint_code2, end_point.getStruct_code())
|
||||
.or()
|
||||
.eq(SchBaseTask::getPoint_code1, start_point.getStruct_code())
|
||||
.or()
|
||||
.eq(SchBaseTask::getPoint_code2, start_point.getStruct_code())
|
||||
)
|
||||
.le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode()));
|
||||
|
||||
if (CollectionUtils.isNotEmpty(taskingSchBaseTaskList)) {
|
||||
throw new BadRequestException(LangBehavior.language("pda_manage.ongoing_task_at_point"));
|
||||
}
|
||||
// start_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
|
||||
// iStructattrService.updateById(start_point);
|
||||
// end_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
|
||||
// iStructattrService.updateById(end_point);
|
||||
// 创建任务
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("config_code", IOSConstant.PDA_POINT_TASK);
|
||||
|
||||
@@ -25,6 +25,11 @@ public interface PmFormDataMapper extends BaseMapper<PmFormData> {
|
||||
List<PmFormDataDto> queryTree(@Param("query") FormDataQuery query);
|
||||
|
||||
List<PmFormDataDto> queryTree2(@Param("query") FormDataQuery query);
|
||||
|
||||
/**
|
||||
* 支持MyBatis-Plus分页的查询方法
|
||||
*/
|
||||
List<PmFormDataDto> queryTreePage(com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> page, @Param("query") FormDataQuery query);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -161,6 +161,62 @@
|
||||
</where>
|
||||
ORDER BY create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 支持MyBatis-Plus分页的查询方法 -->
|
||||
<select id="queryTreePage" resultMap="dataDetail">
|
||||
SELECT
|
||||
pm_form_data.*,
|
||||
md_me_materialbase.material_code,
|
||||
md_me_materialbase.material_id,
|
||||
md_me_materialbase.material_name,
|
||||
md_me_materialbase.material_spec,
|
||||
md_me_materialbase.net_weight
|
||||
FROM
|
||||
pm_form_data
|
||||
left join md_me_materialbase on pm_form_data.material_code = md_me_materialbase.material_code
|
||||
<where>
|
||||
(is_merge = 0 or is_merge is null)
|
||||
<if test="query.search != null and query.search != ''">
|
||||
and form_data LIKE '%${query.search}%'
|
||||
</if>
|
||||
<if test="query.form_type != null and query.form_type != ''">
|
||||
and form_type = #{query.form_type}
|
||||
</if>
|
||||
<if test="query.is_finish != null and query.is_finish != ''">
|
||||
and is_finish = #{query.is_finish}
|
||||
</if>
|
||||
<if test="query.pcsn != null and query.pcsn != ''">
|
||||
and pcsn = #{query.pcsn}
|
||||
</if>
|
||||
<if test="query.code != null and query.code != ''">
|
||||
and code LIKE '%${query.code}'
|
||||
</if>
|
||||
<if test="query.material_code != null and query.material_code != ''">
|
||||
and (md_me_materialbase.material_code LIKE '%${query.material_code}%'
|
||||
or md_me_materialbase.material_name LIKE '%${query.material_code}%')
|
||||
</if>
|
||||
<if test="query.start_time != null and query.start_time != ''">
|
||||
and pm_form_data.source_form_date >= #{query.start_time}
|
||||
</if>
|
||||
<if test="query.end_time != null and query.end_time != ''">
|
||||
and #{query.end_time} >= pm_form_data.source_form_date
|
||||
</if>
|
||||
<if test="query.status != null and query.status != ''">
|
||||
and pm_form_data.status IN
|
||||
<foreach collection="query.status" item="status" separator="," open="(" close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="query.form_query != null and query.form_query.size() > 0">
|
||||
<foreach collection="query.form_query" item="value" index="key">
|
||||
<if test="value != null and value != ''">
|
||||
and JSON_CONTAINS(form_data, '{"${key}":"${value}"}')
|
||||
</if>
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY create_time DESC
|
||||
</select>
|
||||
<select id="queryTreeCounts" resultType="java.math.BigDecimal">
|
||||
SELECT
|
||||
SUM(pm_form_data.qty) as counts
|
||||
|
||||
@@ -159,14 +159,12 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
|
||||
@Override
|
||||
public com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> queryTree(FormDataQuery query, PageQuery pageQuery) {
|
||||
Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
|
||||
page.setOrderBy("id DESC");
|
||||
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageQuery.getPage() + 1, pageQuery.getSize());
|
||||
trimStringFields(query);
|
||||
List<PmFormDataDto> pmFormDataList = this.baseMapper.queryTree2(query);
|
||||
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> dtoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPages(), page.getPageSize(), page.getTotal());
|
||||
dtoPage.setRecords(pmFormDataList);
|
||||
return dtoPage;
|
||||
List<PmFormDataDto> pmFormDataDtos = this.baseMapper.queryTreePage(page, query);
|
||||
page.setRecords(pmFormDataDtos);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -132,44 +132,44 @@ public class PdaPointTask extends AbstractTask {
|
||||
|
||||
@Transactional
|
||||
public void finishTask(SchBaseTask taskObj) {
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.set(Structattr::getStoragevehicle_code, null)
|
||||
.set(Structattr::getTask_code, null)
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
);
|
||||
// 更新终点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
|
||||
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||
.set(Structattr::getTask_code, null)
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
);
|
||||
// 更新任务
|
||||
taskObj.setRemark("已完成");
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskService.updateById(taskObj);
|
||||
// // 更新起点
|
||||
// iStructattrService.update(
|
||||
// new UpdateWrapper<Structattr>().lambda()
|
||||
// .eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
// .set(Structattr::getStoragevehicle_code, null)
|
||||
// .set(Structattr::getTask_code, null)
|
||||
// .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
// );
|
||||
// // 更新终点
|
||||
// iStructattrService.update(
|
||||
// new UpdateWrapper<Structattr>().lambda()
|
||||
// .eq(Structattr::getStruct_code, taskObj.getPoint_code2())
|
||||
// .set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||
// .set(Structattr::getTask_code, null)
|
||||
// .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
// );
|
||||
// // 更新任务
|
||||
// taskObj.setRemark("已完成");
|
||||
// taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
// taskService.updateById(taskObj);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void cancelTask(SchBaseTask taskObj) {
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
);
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
);
|
||||
// 更新任务
|
||||
taskObj.setRemark("已取消");
|
||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||
taskService.updateById(taskObj);
|
||||
// // 更新起点
|
||||
// iStructattrService.update(
|
||||
// new UpdateWrapper<Structattr>().lambda()
|
||||
// .eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
// .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
// );
|
||||
// iStructattrService.update(
|
||||
// new UpdateWrapper<Structattr>().lambda()
|
||||
// .eq(Structattr::getStruct_code, taskObj.getPoint_code2())
|
||||
// .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
// );
|
||||
// // 更新任务
|
||||
// taskObj.setRemark("已取消");
|
||||
// taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||
// taskService.updateById(taskObj);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ public class StInTask extends AbstractTask {
|
||||
|
||||
//更新组盘表状态
|
||||
iMdPbGroupplateServi.update(new LambdaUpdateWrapper<GroupPlate>()
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘"))
|
||||
.set(GroupPlate::getUpdate_time, DateUtil.now())
|
||||
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code()));
|
||||
|
||||
|
||||
@@ -20,7 +20,9 @@ import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||
import org.nl.wms.sch_manage.service.util.TaskType;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.service.IOutBillService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
import org.nl.wms.warehouse_manage.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -47,6 +49,9 @@ public class StOutTask extends AbstractTask {
|
||||
@Resource
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
|
||||
@Autowired
|
||||
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||
|
||||
@Override
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
@@ -175,6 +180,12 @@ public class StOutTask extends AbstractTask {
|
||||
outBillService.allCancel(jsonObject);
|
||||
}
|
||||
|
||||
//更新组盘表状态
|
||||
iMdPbGroupplateService.update(new LambdaUpdateWrapper<GroupPlate>()
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.set(GroupPlate::getUpdate_time, DateUtil.now())
|
||||
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code()));
|
||||
|
||||
// 更新任务状态
|
||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||
taskObj.setRemark("已取消");
|
||||
|
||||
@@ -126,7 +126,8 @@
|
||||
dtl.*,
|
||||
mb.material_code,
|
||||
mb.material_name,
|
||||
mst.bill_code
|
||||
mst.bill_code,
|
||||
mst.vehicle_code storagevehicle_code
|
||||
FROM
|
||||
st_ivt_iostorinvdtl dtl
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||
|
||||
@@ -194,6 +194,11 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
io_mst.put("syscompanyid", deptId + "");
|
||||
for (int i = 0; i < rows.size(); i++) {
|
||||
HashMap<String, Object> row = rows.get(i);
|
||||
if(whereJson.get("vehicle_code") == null){
|
||||
whereJson.put("vehicle_code",row.get("storagevehicle_code"));
|
||||
io_mst.put("vehicle_code",whereJson.get("vehicle_code"));
|
||||
}
|
||||
|
||||
JSONObject ioStorInvDtl = new JSONObject();
|
||||
ioStorInvDtl.putAll(row);
|
||||
ioStorInvDtl.put("iostorinvdtl_id",IdUtil.getStringId());
|
||||
|
||||
@@ -1575,6 +1575,7 @@ var config = {
|
||||
"frozen_quantity_cannot_be_negative": "Số lượng đóng băng không thể âm, vui lòng kiểm tra số lượng thay đổi! Số lượng đóng băng hiện tại là 【%s】 Số lượng thay đổi hiện tại là 【%s】"
|
||||
},
|
||||
"pda_manage": {
|
||||
"ongoing_task_at_point":"Điểm này có nhiệm vụ đang thực hiện",
|
||||
"change_type_cannot_be_empty": "Loại thay đổi không được để trống!",
|
||||
"carrier_code_cannot_be_empty": "Mã phương tiện không được để trống!",
|
||||
"material_id_cannot_be_empty": "Định danh vật liệu không được để trống!",
|
||||
|
||||
@@ -1575,6 +1575,7 @@ var config = {
|
||||
"frozen_quantity_cannot_be_negative": "冻结数不能为负数,请检查变动数量!当前冻结为【%s】当前变动数为【%s】"
|
||||
},
|
||||
"pda_manage": {
|
||||
"ongoing_task_at_point":"该点位存在正在执行的任务",
|
||||
"change_type_cannot_be_empty": "变动类型不能为空!",
|
||||
"carrier_code_cannot_be_empty": "载具编码不能为空!",
|
||||
"material_id_cannot_be_empty": "物料标识不能为空!",
|
||||
@@ -1586,7 +1587,7 @@ var config = {
|
||||
"vehicle_info_cannot_be_empty": "载具信息不能为空!",
|
||||
"vehicle_already_has_group_plate_info": "载具编码:【%s】已存在组盘信息,请对数据进行核实!",
|
||||
"vehicle_already_in_storage": "载具编码:【%s】已存在库内:【%s】,请对数据进行核实!",
|
||||
"dtllist_cannot_be_empty": "dtlList不可为空",
|
||||
"dtllist_cannot_be_empty": "料框不可为空",
|
||||
"vehicle_not_group_plated": "此载具未组盘,请检查!",
|
||||
"vehicle_not_in_group_plate_status": "此载具非组盘状态,请检查!",
|
||||
"point_not_exists": "点位不存在:【%s】",
|
||||
|
||||
Reference in New Issue
Block a user