Merge remote-tracking branch 'origin/master_merge' into master_merge

This commit is contained in:
zhangzq
2025-04-10 19:44:59 +08:00
10 changed files with 89 additions and 17 deletions

View File

@@ -219,6 +219,12 @@ public class SlitterPdaController {
public ResponseEntity<Object> showManualView(@RequestBody JSONObject param) { public ResponseEntity<Object> showManualView(@RequestBody JSONObject param) {
return new ResponseEntity<>(slitterDevices.showManualView(param), HttpStatus.OK); return new ResponseEntity<>(slitterDevices.showManualView(param), HttpStatus.OK);
} }
@PostMapping("/urgentPlan")
@Log("加急送轴")
@SaIgnore
public ResponseEntity<Object> urgentPlan(@RequestBody JSONObject param) {
return new ResponseEntity<>(slitterDevices.urgentPlan(param), HttpStatus.OK);
}
@PostMapping("/rollCacheManage") @PostMapping("/rollCacheManage")
@Log("母卷暂存架子管理") @Log("母卷暂存架子管理")
@SaIgnore @SaIgnore

View File

@@ -136,6 +136,7 @@ public class TwoLashTask extends AbstractAcsTask {
.task_type(json.getString("acs_task_type")) .task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1")) .start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2")) .next_device_code(json.getString("point_code2"))
.vehicle_code(json.getString("vehicle_code"))
.vehicle_code2(json.getString("vehicle_code")) .vehicle_code2(json.getString("vehicle_code"))
.route_plan_code(getRoutePlanCode(json.getString("point_code1"))) .route_plan_code(getRoutePlanCode(json.getString("point_code1")))
.priority(json.getString("priority")) .priority(json.getString("priority"))

View File

@@ -138,6 +138,7 @@
</select> </select>
<select id="showManualView" resultType="org.nl.b_lms.sch.tasks.slitter.mapper.dto.CallPlanViewVO"> <select id="showManualView" resultType="org.nl.b_lms.sch.tasks.slitter.mapper.dto.CallPlanViewVO">
SELECT SELECT
p.workorder_id,
p.resource_name, p.resource_name,
CASE CASE
WHEN LENGTH(p.parent_container_name) > 0 THEN WHEN LENGTH(p.parent_container_name) > 0 THEN
@@ -161,6 +162,7 @@
AND '1' = (SELECT c.is_used FROM st_ivt_cutpointivt c WHERE c.ext_code = p.resource_name) AND '1' = (SELECT c.is_used FROM st_ivt_cutpointivt c WHERE c.ext_code = p.resource_name)
AND p.parent_container_name LIKE '%虚拟-B%' AND p.parent_container_name LIKE '%虚拟-B%'
GROUP BY GROUP BY
p.workorder_id,
p.resource_name, p.resource_name,
p.parent_container_name, p.parent_container_name,
p.restruct_container_name, p.restruct_container_name,

View File

@@ -10,6 +10,10 @@ import java.io.Serializable;
*/ */
@Data @Data
public class CallPlanViewVO implements Serializable { public class CallPlanViewVO implements Serializable {
/**
* uuid
*/
private String workorder_id;
/** /**
* 分切设备 * 分切设备
*/ */

View File

@@ -314,6 +314,13 @@ public interface SlitterService {
*/ */
List<CallPlanViewVO> showManualView(JSONObject param); List<CallPlanViewVO> showManualView(JSONObject param);
/**
* 加急送轴
* @param param
* @return
*/
JSONObject urgentPlan(JSONObject param);
/** /**
* 子卷下料2 * 子卷下料2
* @param param * @param param

View File

@@ -2181,7 +2181,34 @@ public class SlitterServiceImpl implements SlitterService {
public List<CallPlanViewVO> showManualView(JSONObject param) { public List<CallPlanViewVO> showManualView(JSONObject param) {
return slitterMapper.showManualView(); return slitterMapper.showManualView();
} }
@Override
public JSONObject urgentPlan(JSONObject param) {
JSONObject res = new JSONObject();
log.info("加急送轴的输入参数为:{}", param);
String workorder_id = param.getString("workorder_id");
PdmBiSlittingproductionplan plan = slittingproductionplanService.getById(workorder_id);
log.info("当前加急送轴的计划为:{}", plan);
if(!"01".equals(plan.getStatus())){
res.put("status", HttpStatus.HTTP_OK);
res.put("message", "加急失败,当前计划正在套轴!");
return res;
}
//更新套轴计划开始时间为当前时间
LambdaUpdateWrapper<PdmBiSlittingproductionplan> updateWrapper = new LambdaUpdateWrapper<PdmBiSlittingproductionplan>();
updateWrapper.set(PdmBiSlittingproductionplan::getStart_time, DateUtil.now())
.eq(PdmBiSlittingproductionplan::getWorkorder_id, workorder_id)
.eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO);
//判断更新是否成功
boolean flag = slittingproductionplanService.update(updateWrapper);
if(flag){
res.put("status", HttpStatus.HTTP_OK);
res.put("message", "加急成功!");
}else{
res.put("status", HttpStatus.HTTP_OK);
res.put("message", "加急失败,请刷新再试!");
}
return res;
}
@Override @Override
public JSONObject downRolls2(JSONObject param) { public JSONObject downRolls2(JSONObject param) {
log.info("下卷2的输入参数为{}", param); log.info("下卷2的输入参数为{}", param);

View File

@@ -69,4 +69,8 @@ public class MdpbBoxtype implements Serializable {
* 箱体结构 * 箱体结构
*/ */
private String box_structure; private String box_structure;
/**
* 干燥机数量
*/
private Integer desiccant_num;
} }

View File

@@ -36,7 +36,9 @@ import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask;
import org.nl.b_lms.sch.tasks.first_floor_area.SsxDjwTask; import org.nl.b_lms.sch.tasks.first_floor_area.SsxDjwTask;
import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService;
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.enums.TASKEnum; import org.nl.b_lms.storage_manage.ios.enums.TASKEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService;
@@ -157,6 +159,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Resource @Resource
private SsxDjwTask ssxDjwTask; private SsxDjwTask ssxDjwTask;
@Autowired
private IMdpbBoxtypeService iMdpbBoxtypeService;
@Autowired @Autowired
private ISysParamService iSysParamService; private ISysParamService iSysParamService;
@@ -2750,13 +2754,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
//获取包装关系 //获取包装关系
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + material_barcode + "'").uniqueResult(0); JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + material_barcode + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(sub_jo)) { if (ObjectUtil.isNotEmpty(sub_jo)) {
String material_type = sub_jo.getString("material_type"); //木箱类型
if (material_type.equals("FG1")) { String box_type = sub_jo.getString("box_type");
desiccantTemplate = "6"; if(ObjectUtil.isEmpty(box_type)){
throw new BadRequestException("未查询到木箱号【" + material_barcode + "】对应的包装关系缺少木箱类型信息!");
} }
if (material_type.equals("FG2")) { //查询木箱类型数据
desiccantTemplate = "4"; LambdaQueryWrapper<MdpbBoxtype> queryWrapper = new QueryWrapper<MdpbBoxtype>().lambda();
queryWrapper.eq(MdpbBoxtype::getBox_type,box_type);
MdpbBoxtype boxType = iMdpbBoxtypeService.getOne(queryWrapper);
if(ObjectUtil.isEmpty(boxType)){
throw new BadRequestException("未查询到木箱类型【" + box_type + "】信息!");
} }
desiccantTemplate = String.valueOf(boxType.getDesiccant_num());
}else{
throw new BadRequestException("未查询到木箱号【" + material_barcode + "】对应的包装关系!");
} }
//根据木箱高度,判断入库仓位的高度 //根据木箱高度,判断入库仓位的高度
String height = ""; String height = "";

View File

@@ -47,7 +47,6 @@
</crudOperation> </crudOperation>
<!--表单组件--> <!--表单组件-->
<el-dialog <el-dialog
:close-on-click-modal="false"
:before-close="crud.cancelCU" :before-close="crud.cancelCU"
:visible.sync="crud.status.cu > 0" :visible.sync="crud.status.cu > 0"
:title="crud.status.title" :title="crud.status.title"
@@ -109,6 +108,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="干燥剂数量:" prop="desiccant_num">
<el-input-number :precision="0" :step="1" :min="0" :max="100" v-model="form.desiccant_num" size="mini" :controls="true" style="width: 200px" />
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
@@ -174,13 +178,14 @@
> >
<el-table-column prop="box_type" sortable label="木箱类型" /> <el-table-column prop="box_type" sortable label="木箱类型" />
<el-table-column prop="box_name" label="木箱描述" width="150" /> <el-table-column prop="box_name" label="木箱描述" width="150" />
<el-table-column prop="lash_num" label="捆扎模版" width="150" /> <el-table-column prop="lash_num" label="捆扎模版" width="100" />
<el-table-column prop="lash_num_one" label="一次捆扎次数" width="150" /> <el-table-column prop="lash_num_one" label="一次捆扎次数" width="100" />
<el-table-column prop="lash_num_tow" label="二次捆扎次数" width="150" /> <el-table-column prop="lash_num_tow" label="二次捆扎次数" width="100" />
<el-table-column prop="need_lash_one" label="是否一次捆扎" width="150" :formatter="formatOne" /> <el-table-column prop="need_lash_one" label="是否一次捆扎" width="100" :formatter="formatOne" />
<el-table-column prop="need_lash_two" label="是否二次捆扎" width="150" :formatter="formatTwo" /> <el-table-column prop="need_lash_two" label="是否二次捆扎" width="100" :formatter="formatTwo" />
<el-table-column prop="expend_width" label="叉车取货宽度" width="150" /> <el-table-column prop="expend_width" label="叉车取货宽度" width="100" />
<el-table-column prop="box_structure" label="箱体结构" width="150" :formatter="boxType"/> <el-table-column prop="box_structure" label="箱体结构" width="100" :formatter="boxType"/>
<el-table-column prop="desiccant_num" label="干燥剂数量" width="100"/>
<el-table-column <el-table-column
v-permission="['admin','sectattr:edit','sectattr:del']" v-permission="['admin','sectattr:edit','sectattr:del']"
label="操作" label="操作"
@@ -218,7 +223,8 @@ const defaultForm = {
lash_num_tow: null, lash_num_tow: null,
need_lash_one: '0', need_lash_one: '0',
need_lash_two: '0', need_lash_two: '0',
box_structure: null box_structure: null,
desiccant_num: 6
} }
export default { export default {
name: 'BoxType', name: 'BoxType',
@@ -231,7 +237,7 @@ export default {
optShow: { add: true, reset: true }, optShow: { add: true, reset: true },
url: 'api/boxtype', url: 'api/boxtype',
idField: 'box_type', idField: 'box_type',
sort: 'box_type,desc', sort: '',
crudMethod: { ...crudBoxtype } crudMethod: { ...crudBoxtype }
}) })
}, },
@@ -272,6 +278,9 @@ export default {
updateOne() { updateOne() {
this.dialogVisible2 = true this.dialogVisible2 = true
}, },
close() {
this.dialogVisible2 = false
},
confirmUpdate() { confirmUpdate() {
crudBoxtype.confirmUpdate(this.formMst).then(res => { crudBoxtype.confirmUpdate(this.formMst).then(res => {
this.dialogVisible2 = false this.dialogVisible2 = false

View File

@@ -454,7 +454,7 @@
/> />
<el-table-column sortable prop="sap_pcsn" label="sap批次" :min-width="flexWidth('sap_pcsn',crud.data,'SAP批次')" /> <el-table-column sortable prop="sap_pcsn" label="sap批次" :min-width="flexWidth('sap_pcsn',crud.data,'SAP批次')" />
<el-table-column prop="width" label="产品规格(幅宽)" :min-width="flexWidth('width',crud.data,'产品规格(幅宽)')" /> <el-table-column prop="width" label="产品规格(幅宽)" :min-width="flexWidth('width',crud.data,'产品规格(幅宽)')" />
<el-table-column prop="width_standard" :formatter="crud.formatNum0" label="客户要求幅宽" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')" /> <el-table-column prop="width_standard" :formatter="crud.formatNum3" label="客户要求幅宽" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')" />
<el-table-column prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" /> <el-table-column prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" />
<el-table-column <el-table-column
prop="mass_per_unit_area" prop="mass_per_unit_area"