This commit is contained in:
2023-01-06 14:32:53 +08:00
11 changed files with 109 additions and 66 deletions

View File

@@ -62,10 +62,10 @@ public class SecurityUtils {
}
/**
* 获取系统用户Id
*
* @return 系统用户Id
* 获取系统用户部门Id
* @return 用户部门现在1n该方法禁用
*/
@Deprecated
public static Long getDeptId() {
// return getCurrentUser().getUser().getDept().getId();
return 1L;

View File

@@ -135,6 +135,9 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
}catch (Exception ex){
throw new RuntimeException();
}
if ("123456".equals(sysUser.getPassword())){
sysUser.setPassword(SaSecureUtil.md5BySalt("123456", "salt"));
}
sysUser.setUpdateTime(new Date());
sysUser.setUpdateId(SecurityUtils.getCurrentUserId());
this.updateById(sysUser);

View File

@@ -44,6 +44,7 @@ public class OutTask extends AbstractAcsTask {
*/
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
WQLObject dis_tab = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
@@ -89,6 +90,11 @@ public class OutTask extends AbstractAcsTask {
resultList.add(dto);
}
}
// 更新分配明细执行状态为:执行中
JSONObject paramMap = new JSONObject();
paramMap.put("work_status", "02");
dis_tab.update(paramMap,"task_id ='"+json.getString("task_id")+"'");
}
return resultList;
}
@@ -124,7 +130,7 @@ public class OutTask extends AbstractAcsTask {
String task_group_id = jsonTask.getString("task_group_id");
if (ObjectUtil.isNotEmpty(task_group_id)) {
// 上一个任务组顺序号
String sort_seq_last = NumberUtil.sub(jsonTask.getString("sort_seq"), "1").toString();
String sort_seq_last = NumberUtil.add(jsonTask.getString("sort_seq"), "1").toString();
JSONObject jsonTaskLast = taskTab.query("task_group_id = '" + task_group_id + "' and sort_seq = '" + sort_seq_last + "' and task_status <> '07'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonTaskLast)) throw new BadRequestException("请先完成"+jsonTaskLast.getString("task_code")+"的任务!");

View File

@@ -206,4 +206,10 @@ public interface CheckOutBillService {
JSONArray queryBox(JSONObject whereJson);
JSONArray getOutBillTask2(Map whereJson);
/**
* 删除任务
* @param whereJson /
*/
void cancelTask(JSONObject whereJson);
}

View File

@@ -98,6 +98,13 @@ public class CheckOutBillController {
checkOutBillService.allCancel(whereJson);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PostMapping("/cancelTask")
@Log("删除任务")
@ApiOperation("删除任务")
public ResponseEntity<Object> cancelTask(@RequestBody JSONObject whereJson) {
checkOutBillService.cancelTask(whereJson);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PostMapping("/oneCancel")
@Log("出库单全部取消")
@ApiOperation("出库单全部取消")

View File

@@ -596,6 +596,26 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
return jo;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelTask(JSONObject whereJson) {
WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis"); // 分配表
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); // 任务表
String task_id = whereJson.getString("task_id");
// 更新分配明细 任务状态、清空任务id
JSONObject paramMap = new JSONObject();
paramMap.put("task_id", "");
paramMap.put("work_status", "00");
paramMap.put("point_id", "");
disTab.update(paramMap,"task_id = '"+task_id+"'");
// 删除此任务
JSONObject paramMap2 = new JSONObject();
paramMap2.put("is_delete","1" );
taskTab.update(paramMap2,"task_id = '"+task_id+"'");
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(JSONObject whereJson) {
@@ -853,6 +873,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
jsonMap.put("flag", "1");
jsonMap.put("material_id", dtl.getString("material_id"));
jsonMap.put("pcsn", dtl.getString("pcsn"));
jsonMap.put("box_no", dtl.getString("box_no"));
jsonMap.put("sect_id", whereJson.getString("sect_id"));
jsonMap.put("stor_id", whereJson.getString("stor_id"));
@@ -1072,6 +1093,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
jsonMap.put("flag", "1");
jsonMap.put("material_id", dtl.getString("material_id"));
jsonMap.put("pcsn", dtl.getString("pcsn"));
jsonMap.put("box_no", dtl.getString("box_no"));
jsonMap.put("sect_id", whereJson.getString("sect_id"));
jsonMap.put("stor_id", whereJson.getString("stor_id"));
@@ -1919,14 +1941,15 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
boolean left_verify = true;
if (ObjectUtil.isEmpty(jsonIsBlockL)) {
left_verify = false;
String out_order_seq = NumberUtil.add(jsonAttr.getString("out_order_seq"), "1").toString();
/* String out_order_seq = NumberUtil.add(jsonAttr.getString("out_order_seq"), "1").toString();
JSONObject json = attrTab.query("sect_id = '" + map.getString("sect_id")
+ "' and out_order_seq = '" + out_order_seq
+ "' and block_num = '" + jsonAttr.getString("block_num")
+ "' and row_num = '" + jsonAttr.getString("row_num") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(json)) {
jsonAttr.put("placement_type","02");
}
}*/
jsonAttr.put("placement_type","02");
} else {
// 调用验证方法进行校验
String out_order_seq = NumberUtil.add(jsonIsBlockL.getString("out_order_seq"), "1").toString();
@@ -1962,14 +1985,15 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
boolean right_verify = true;
if (ObjectUtil.isEmpty(jsonIsBlockR)) {
right_verify = false;
String out_order_seq = NumberUtil.sub(jsonAttr.getString("out_order_seq"), "1").toString();
/* String out_order_seq = NumberUtil.sub(jsonAttr.getString("out_order_seq"), "1").toString();
JSONObject json = attrTab.query("sect_id = '" + map.getString("sect_id")
+ "' and out_order_seq = '" + out_order_seq
+ "' and block_num = '" + jsonAttr.getString("block_num")
+ "' and row_num = '" + jsonAttr.getString("row_num") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(json)) {
jsonAttr.put("placement_type","03");
}
}*/
jsonAttr.put("placement_type","03");
} else {
// 调用验证方法进行校验
String out_order_seq = NumberUtil.sub(jsonIsBlockR.getString("out_order_seq"), "1").toString();
@@ -3274,41 +3298,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
jsonTask.put("update_time",now);
wo_Task.update(jsonTask);
/* ArrayList<AcsTaskDto> resultList = new ArrayList<>();
// 1.查询此任务是否有任务组
JSONObject jsonTask = wo_Task.query("task_id = '" + whereJson.getString("task_id") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonTask.getString("task_group_id"))) {
AcsTaskDto dto = AcsTaskDto.builder()
.ext_task_id(jsonTask.getString("task_id"))
.task_code(jsonTask.getString("task_code"))
.task_type(jsonTask.getString("acs_task_type"))
.start_device_code(jsonTask.getString("point_code1"))
.next_device_code(jsonTask.getString("point_code2"))
.vehicle_code(jsonTask.getString("vehicle_code"))
.priority(jsonTask.getString("priority"))
.remark(jsonTask.getString("remark"))
.build();
resultList.add(dto);
} else {
// 2.有任务组:按照执行顺序下发 大到小
JSONArray taskArr = wo_Task.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' order by sort_seq DESC").getResultJSONArray(0);
for (int i = 0; i < taskArr.size(); i++) {
JSONObject json = taskArr.getJSONObject(i);
AcsTaskDto dto = AcsTaskDto.builder()
.ext_task_id(json.getString("task_id"))
.task_code(json.getString("task_code"))
.task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.vehicle_code(json.getString("vehicle_code"))
.priority(json.getString("priority"))
.remark(json.getString("remark"))
.build();
resultList.add(dto);
}
}*/
}
@Override
@@ -3332,6 +3321,16 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
throw new BadRequestException("查询不到操作的任务记录!");
}
// 判断此任务是否有任务组
String task_group_id = task.getString("task_group_id");
if (ObjectUtil.isNotEmpty(task_group_id)) {
// 上一个任务组顺序号
String sort_seq_last = NumberUtil.add(task.getString("sort_seq"), "1").toString();
JSONObject jsonTaskLast = wo_Task.query("task_group_id = '" + task_group_id + "' and sort_seq = '" + sort_seq_last + "' and task_status <> '07'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonTaskLast)) throw new BadRequestException("请先完成"+jsonTaskLast.getString("task_code")+"的任务!");
}
JSONObject dtljo = wo_dis.query("task_id='" + task_id + "'").uniqueResult(0);
whereJson.put("iostorinv_id", dtljo.getString("iostorinv_id"));

View File

@@ -168,7 +168,7 @@
ST_IVT_IOStorInvDtl iosdtl
LEFT JOIN md_me_materialbase mb ON mb.material_id = iosdtl.material_id
LEFT JOIN ST_IVT_IOStorInv ios ON ios.iostorinv_id = iosdtl.iostorinv_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = iosdtl.pcsn
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = iosdtl.pcsn AND sub.package_box_sn = iosdtl.box_no
WHERE
1=1
OPTION 输入.iostorinv_id <> ""
@@ -634,13 +634,15 @@
task.task_code,
task.task_type,
task.task_status,
sub.sap_pcsn
sub.sap_pcsn,
md.class_name task_type_name
FROM
st_ivt_iostorinvdis dis
LEFT JOIN md_me_materialbase mater ON dis.material_id = mater.material_id
LEFT JOIN sch_base_point point ON dis.point_id = point.point_id
LEFT JOIN sch_base_task task ON dis.task_id = task.task_id
LEFT JOIN pdm_bi_subpackagerelation sub ON dis.pcsn = sub.container_name
LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code
WHERE
1=1
@@ -673,13 +675,15 @@
task.task_code,
task.task_type,
task.task_status,
sub.sap_pcsn
sub.sap_pcsn,
md.class_name task_type_name
FROM
st_ivt_iostorinvdis dis
LEFT JOIN md_me_materialbase mater ON dis.material_id = mater.material_id
LEFT JOIN sch_base_point point ON dis.point_id = point.point_id
LEFT JOIN sch_base_task task ON dis.task_id = task.task_id
LEFT JOIN pdm_bi_subpackagerelation sub ON dis.pcsn = sub.container_name
LEFT JOIN pdm_bi_subpackagerelation sub ON dis.pcsn = sub.container_name AND sub.package_box_sn = dis.box_no
LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code
WHERE
1=1

View File

@@ -24,6 +24,7 @@
输入.iostorinv_id TYPEAS s_string
输入.iostorinvdtl_id TYPEAS s_string
输入.stor_id TYPEAS s_string
输入.box_no TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
@@ -73,6 +74,10 @@
ivt.material_id = 输入.material_id
ENDOPTION
OPTION 输入.box_no <> ""
attr.storagevehicle_code = 输入.box_no
ENDOPTION
OPTION 输入.sale_order_name <> ""
sub.sale_order_name = 输入.sale_order_name
ENDOPTION

View File

@@ -108,7 +108,7 @@
<el-table-column prop="bill_status" label="状态" align="center" width="110px" :formatter="bill_statusFormat" />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column show-overflow-tooltip prop="pcsn" label="子卷号" align="center" />
<el-table-column show-overflow-tooltip prop="pcsn" label="子卷号" align="center" width="140px" />
<el-table-column show-overflow-tooltip prop="sap_pcsn" label="sap批次" align="center" />
<el-table-column show-overflow-tooltip prop="plan_qty" label="重量" :formatter="crud.formatNum3" align="center" />
<el-table-column show-overflow-tooltip prop="assign_qty" label="已分配重量" :formatter="crud.formatNum3" align="center" />
@@ -528,6 +528,9 @@ export default {
this.currentDis.point_code = this.form2.point_code
checkoutbill.oneSetPoint(this.currentDis).then(res => {
this.queryTableDdis(this.currentDis.iostorinvdtl_id)
this.crud.notify('设置成功!', CRUD.NOTIFICATION_TYPE.INFO)
}).catch(() => {
this.currentDis.point_code = ''
})
}
},

View File

@@ -82,7 +82,7 @@
>
标示完成
</el-button>
<el-button
<!-- <el-button
slot="left"
class="filter-item"
type="primary"
@@ -92,7 +92,7 @@
@click="cancleTaskfinish"
>
取消完成
</el-button>
</el-button>-->
</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
@@ -107,20 +107,20 @@
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
@current-change="handleDisCurrentChange"
>
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column show-overflow-tooltip prop="pcsn" label="子卷批次号" align="center" />
<el-table-column show-overflow-tooltip prop="sap_pcsn" label="sap批次号" align="center" />
<el-table-column show-overflow-tooltip prop="box_no" label="箱号" align="center" />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" width="130px" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" width="130px" />
<el-table-column show-overflow-tooltip prop="pcsn" label="子卷批次号" align="center" width="140px" />
<el-table-column show-overflow-tooltip prop="sap_pcsn" label="sap批次号" align="center" width="120px" />
<el-table-column show-overflow-tooltip prop="box_no" label="箱号" align="center" width="250px" />
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
<el-table-column show-overflow-tooltip prop="struct_code" label="起始位置" align="center" />
<el-table-column show-overflow-tooltip prop="next_point_code" label="目的位置" align="center" />
<el-table-column show-overflow-tooltip prop="struct_code" label="起始位置" align="center" width="120px" />
<el-table-column show-overflow-tooltip prop="next_point_code" label="目的位置" align="center" width="120px" />
<el-table-column show-overflow-tooltip prop="task_code" label="任务号" align="center" />
<el-table-column prop="task_type" label="任务类型" align="center" width="150px" :formatter="taskdtl_typeFormat" />
<el-table-column prop="task_status" label="状态" align="center" width="110px" :formatter="task_statusFormat" />
<el-table-column show-overflow-tooltip prop="task_type_name" label="任务类型" align="center" width="150px" />
<el-table-column show-overflow-tooltip prop="task_status" label="状态" align="center" width="120px" :formatter="task_statusFormat" min-width="150px" />
<el-table-column align="center" label="操作" width="160" fixed="right">
<template scope="scope">
<el-button :disabled="tabledisabled(scope.row)" type="danger" class="filter-item" size="mini" icon="el-icon-delete" @click.native.prevent="deleteRow(scope.row)">删除</el-button>
<el-button type="danger" class="filter-item" size="mini" icon="el-icon-delete" @click.native.prevent="deleteRow(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -130,7 +130,7 @@
<script>
import { crud } from '@crud/crud'
import CRUD, { crud } from '@crud/crud'
import checkoutbill from '@/views/wms/st/outbill/checkoutbill'
export default {
@@ -199,9 +199,6 @@ export default {
bill_statusFormat(row) {
return this.dict.label.io_bill_status[row.bill_status]
},
taskdtl_typeFormat(row) {
return this.dict.label.SCH_TASK_TYPE_DTL[row.taskdtl_type]
},
task_statusFormat(row) {
return this.dict.label.task_status[row.task_status]
},
@@ -213,8 +210,12 @@ export default {
}
},
deleteRow(row) {
checkoutbill.allCancel(row).then(res => {
if (!'00,01'.includes(row.work_status)) {
return this.crud.notify('任务不可删除!', CRUD.NOTIFICATION_TYPE.INFO)
}
checkoutbill.cancelTask(row).then(res => {
this.queryTableDtl()
this.crud.notify('任务删除成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
},
issueTask() {
@@ -222,6 +223,7 @@ export default {
this.fullscreenLoading = true
checkoutbill.issueTask(this.currentDis).then(res => {
this.queryTableDdis()
this.crud.notify('下发成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.fullscreenLoading = false
}).catch(() => {
this.fullscreenLoading = false
@@ -233,6 +235,7 @@ export default {
this.fullscreenLoading = true
checkoutbill.finishTask(this.currentDis).then(res => {
this.queryTableDdis()
this.crud.notify('操作成功成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.fullscreenLoading = false
}).catch(() => {
this.fullscreenLoading = false

View File

@@ -204,4 +204,11 @@ export function getOutBillTask2(data) {
data
})
}
export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, setPoint, oneSetPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox, getOutBillTask2, oneCancel }
export function cancelTask(data) {
return request({
url: '/api/checkoutbill/cancelTask',
method: 'post',
data
})
}
export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, setPoint, oneSetPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox, getOutBillTask2, oneCancel, cancelTask }