工单修改,新建工单时增加可以多选择所需存放的固化室
This commit is contained in:
@@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description /
|
||||
@@ -91,6 +92,12 @@ public class PdmBdWorkorder implements Serializable {
|
||||
@ApiModelProperty(value = "外部标识")
|
||||
private String ext_id;
|
||||
|
||||
@ApiModelProperty(value = "外部数据")
|
||||
private String ext_data;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<String> ghs;
|
||||
|
||||
@ApiModelProperty(value = "是否删除")
|
||||
private Boolean is_delete;
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -50,6 +51,11 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
public IPage<PdmBdWorkorder> queryAll(PdmBdWorkorderQuery query, PageQuery page){
|
||||
IPage<PdmBdWorkorder> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
pages = pdmBdWorkorderMapper.selectPageLeftJoin(pages, query);
|
||||
for(PdmBdWorkorder pdmBdWorkorder:pages.getRecords()){
|
||||
if(ObjectUtil.isNotEmpty(pdmBdWorkorder.getExt_data())) {
|
||||
pdmBdWorkorder.setGhs(Arrays.asList(pdmBdWorkorder.getExt_data().split(",")));
|
||||
}
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
|
||||
@@ -58,7 +64,6 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
|
||||
// 点位编码和点位名称为父点位
|
||||
entity.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
entity.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER"));
|
||||
@@ -68,6 +73,11 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
entity.setUpdate_id(currentUserId);
|
||||
entity.setUpdate_name(nickName);
|
||||
entity.setUpdate_time(now);
|
||||
StringBuilder sb=new StringBuilder();
|
||||
for(String ghs:entity.getGhs()){
|
||||
sb.append(ghs).append(',');
|
||||
}
|
||||
entity.setExt_data(sb.toString());
|
||||
pdmBdWorkorderMapper.insert(entity);
|
||||
}
|
||||
|
||||
@@ -84,7 +94,11 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
entity.setUpdate_id(currentUserId);
|
||||
entity.setUpdate_name(nickName);
|
||||
entity.setUpdate_time(now);
|
||||
|
||||
StringBuilder sb=new StringBuilder();
|
||||
for(String ghs:entity.getGhs()){
|
||||
sb.append(ghs).append(',');
|
||||
}
|
||||
entity.setExt_data(sb.toString());
|
||||
pdmBdWorkorderMapper.updateById(entity);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.system.service.dict.dao.Dict;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
|
||||
@@ -182,7 +183,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
public List<SchBasePoint> getPointList(SchBasePoint region) {
|
||||
if (ObjectUtil.isEmpty(region)) return this.list();
|
||||
return pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, region.getRegion_code()));
|
||||
.eq(SchBasePoint::getRegion_code, region.getRegion_code())
|
||||
.eq(ObjectUtil.isNotEmpty(region.getPoint_type()),SchBasePoint::getPoint_type, region.getPoint_type())
|
||||
.orderByAsc(SchBasePoint::getPoint_code));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -177,38 +177,52 @@ public class TBXMLTask extends AbstractTask {
|
||||
// 获取物料
|
||||
MdBaseMaterial material = materialService.getById(workorder.getMaterial_id());
|
||||
// 获取固化方案
|
||||
Param curingPlan = paramService.findByCode("CuringPlan");
|
||||
// Param curingPlan = paramService.findByCode("CuringPlan");
|
||||
List<SchBasePoint> points = new ArrayList<>();
|
||||
if (curingPlan.getValue().equals(GeneralDefinition.NOT_MIXING)) {
|
||||
// 不可混料-需要根据工单上物料的信息
|
||||
// 1 获取含有该物料并且没满的固化室。
|
||||
points = tbxMapper.getNotFullByMaterial(nextRegionStr, vehicle_type, workorder.getMaterial_id());
|
||||
} else if (curingPlan.getValue().equals(GeneralDefinition.CAN_MIXING)) {
|
||||
// 可混料, 要与物料工艺号相同
|
||||
// 1 获取同工艺号的位置
|
||||
points = tbxMapper.getCanMiningPoint(nextRegionStr, vehicle_type, material.getTechnique_num());
|
||||
} else {
|
||||
// 自定义混料
|
||||
// 获取自定义混料对应的plan_code(计划编码)
|
||||
Param currentMaterials = paramService.getOne(new LambdaQueryWrapper<Param>().eq(Param::getCode, "CurrentMaterials"));
|
||||
// 获取plan_code对应的物料数组
|
||||
List<String> details = solidifyPlanService.details(currentMaterials.getValue());
|
||||
// 判断是否在自定义配方内
|
||||
if (details.contains(material.getMaterial_id())) {
|
||||
// 1 寻找可存放的固化室
|
||||
points = tbxMapper.getSamePlanPoint(nextRegionStr, details, vehicle_type);
|
||||
if (points.size() == 0) {
|
||||
// 2 没找到需要找个相同物料可用的位置
|
||||
// hint: 获取含有该物料并且没满的固化室。
|
||||
points = tbxMapper.getNotFullByMaterial(nextRegionStr, vehicle_type, workorder.getMaterial_id());
|
||||
}
|
||||
}
|
||||
List<String> ghsList=new ArrayList<>();
|
||||
//固化室逻辑调整,现在去哪个固化室取决于工单,原有限制不变,原有混料规则废弃
|
||||
if(ObjectUtil.isNotEmpty(workorder.getExt_data())) {
|
||||
ghsList=Arrays.asList(workorder.getExt_data().split(","));
|
||||
}
|
||||
// 2 没有对应的固化室、没有同工艺号的固化室、没有计划方案对应的固化室,就找新的固化室
|
||||
points = tbxMapper.getNotFullByMaterial(nextRegionStr, vehicle_type, workorder.getMaterial_id(),ghsList);
|
||||
// if (curingPlan.getValue().equals(GeneralDefinition.NOT_MIXING)) {
|
||||
// // 不可混料-需要根据工单上物料的信息
|
||||
// // 1 获取含有该物料并且没满的固化室。
|
||||
// points = tbxMapper.getNotFullByMaterial(nextRegionStr, vehicle_type, workorder.getMaterial_id());
|
||||
// } else if (curingPlan.getValue().equals(GeneralDefinition.CAN_MIXING)) {
|
||||
// // 可混料, 要与物料工艺号相同
|
||||
// // 1 获取同工艺号的位置
|
||||
// points = tbxMapper.getCanMiningPoint(nextRegionStr, vehicle_type, material.getTechnique_num());
|
||||
// } else {
|
||||
// // 自定义混料
|
||||
// // 获取自定义混料对应的plan_code(计划编码)
|
||||
// Param currentMaterials = paramService.getOne(new LambdaQueryWrapper<Param>().eq(Param::getCode, "CurrentMaterials"));
|
||||
// // 获取plan_code对应的物料数组
|
||||
// List<String> details = solidifyPlanService.details(currentMaterials.getValue());
|
||||
// // 判断是否在自定义配方内
|
||||
// if (details.contains(material.getMaterial_id())) {
|
||||
// // 1 寻找可存放的固化室
|
||||
// points = tbxMapper.getSamePlanPoint(nextRegionStr, details, vehicle_type);
|
||||
// if (points.size() == 0) {
|
||||
// // 2 没找到需要找个相同物料可用的位置
|
||||
// // hint: 获取含有该物料并且没满的固化室。
|
||||
// points = tbxMapper.getNotFullByMaterial(nextRegionStr, vehicle_type, workorder.getMaterial_id());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// // 2 没有对应的固化室、没有同工艺号的固化室、没有计划方案对应的固化室,就找新的固化室
|
||||
if (points.size() == 0) {
|
||||
points = tbxMapper.getEmptyPoint(nextRegionStr, vehicle_type, workorder.getMaterial_id());
|
||||
}
|
||||
SchBasePoint schBasePoint =points.size() > 0 ? points.get(0) : null;
|
||||
SchBasePoint schBasePoint =new SchBasePoint();
|
||||
for(SchBasePoint temp:points){
|
||||
for(String ghs:ghsList) {
|
||||
if (ghs.equals(temp.getParent_point_code())) {
|
||||
schBasePoint=temp;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (schBasePoint != null) {
|
||||
schBasePoint.setCan_material_type(workorder.getMaterial_id());
|
||||
pointService.updateById(schBasePoint);
|
||||
|
||||
@@ -25,7 +25,7 @@ public interface TBXMapper {
|
||||
* @param materialId 物料标识
|
||||
* @return 点位数据
|
||||
*/
|
||||
List<SchBasePoint> getNotFullByMaterial(List<String> nextRegionStr, String vehicleType, String materialId);
|
||||
List<SchBasePoint> getNotFullByMaterial(List<String> nextRegionStr, String vehicleType, String materialId,List<String> ghsList);
|
||||
|
||||
/**
|
||||
* 获取空的固化室
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" >
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
@@ -211,14 +211,14 @@
|
||||
<el-form-item label="设备名称">
|
||||
<el-input v-model="form.point_name" style="width: 240px;" disabled />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="静置时间(分钟)" prop="standing_time">-->
|
||||
<!-- <el-input-number-->
|
||||
<!-- v-model.number="form.standing_time"-->
|
||||
<!-- :min="0"-->
|
||||
<!-- :max="999"-->
|
||||
<!-- style="width: 240px;"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="静置时间(分钟)" prop="standing_time">-->
|
||||
<!-- <el-input-number-->
|
||||
<!-- v-model.number="form.standing_time"-->
|
||||
<!-- :min="0"-->
|
||||
<!-- :max="999"-->
|
||||
<!-- style="width: 240px;"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item v-show="crud.status.edit" label="实际数量" prop="real_qty">
|
||||
<el-input-number
|
||||
v-model.number="form.real_qty"
|
||||
@@ -260,6 +260,24 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="可放固化室" prop="ghs">
|
||||
<el-select
|
||||
v-model="form.ghs"
|
||||
clearable
|
||||
filterable
|
||||
multiple
|
||||
size="mini"
|
||||
placeholder="请选择"
|
||||
class="filter-item"
|
||||
style="width: 240px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in ghsList"
|
||||
:label="item.point_name"
|
||||
:value="item.point_code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否自动搬运" prop="is_needmove">
|
||||
<el-radio-group v-model="form.is_needmove" style="width: 240px">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
@@ -416,7 +434,8 @@ const defaultForm = {
|
||||
workshop_code: null,
|
||||
ext_id: null,
|
||||
is_delete: false,
|
||||
is_urgent: false
|
||||
is_urgent: false,
|
||||
ghs: null
|
||||
}
|
||||
export default {
|
||||
name: 'PdmBdWorkorder',
|
||||
@@ -453,6 +472,9 @@ export default {
|
||||
],
|
||||
region_code: [
|
||||
{ required: true, message: '区域编码不能为空', trigger: 'change' }
|
||||
],
|
||||
ghs: [
|
||||
{ required: true, message: '可放固化室不能为空', trigger: 'change' }
|
||||
]
|
||||
/* workorder_type: [
|
||||
{ required: true, message: '工单类型不能为空', trigger: 'blur' }
|
||||
@@ -465,6 +487,7 @@ export default {
|
||||
workShopList: [],
|
||||
regionList: [],
|
||||
pointList: [],
|
||||
ghsList: [],
|
||||
regionCodeParam: null,
|
||||
materialDialog: false,
|
||||
fullscreenLoading: false
|
||||
@@ -473,6 +496,7 @@ export default {
|
||||
created() {
|
||||
this.getWorkShopList()
|
||||
this.getRegionList()
|
||||
this.getGhsList()
|
||||
},
|
||||
methods: {
|
||||
item() {
|
||||
@@ -506,6 +530,16 @@ export default {
|
||||
})
|
||||
}
|
||||
},
|
||||
getGhsList() { // 获取点位列表
|
||||
const param = {
|
||||
region_code: 'GH',
|
||||
point_type: '1'
|
||||
}
|
||||
crudSchBasePoint.getPointList(param).then(res => {
|
||||
this.ghsList = res
|
||||
this.regionCodeParam = null
|
||||
})
|
||||
},
|
||||
getMaterial() {
|
||||
this.materialDialog = true
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user