dev:报表优化、入库加并发锁
This commit is contained in:
@@ -40,7 +40,7 @@ public class MonitorController {
|
||||
|
||||
@GetMapping
|
||||
@ApiOperation("查询服务监控")
|
||||
@SaCheckPermission("monitor:list")
|
||||
// @SaCheckPermission("monitor:list")
|
||||
public ResponseEntity<Object> query() {
|
||||
return new ResponseEntity<>(serverService.getServers(),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -140,6 +140,9 @@ public class SapToLmsServiceImpl implements SapToLmsService {
|
||||
throw new BadRequestException("销售订单及行号不能为空!");
|
||||
}
|
||||
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '"+pcsn+"'").uniqueResult(0);
|
||||
if(ObjectUtil.isEmpty(sub_jo)){
|
||||
throw new BadRequestException("未查询到对应的包装关系!");
|
||||
}
|
||||
sub_jo.put("sale_order_name",sale_order_name);
|
||||
WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(sub_jo);
|
||||
} catch (Exception exception) {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -35,12 +36,15 @@ import org.nl.wms.sch.service.dto.TaskDto;
|
||||
import org.nl.wms.st.inbill.service.RawAssistIStorService;
|
||||
import org.nl.wms.st.inbill.service.StorPublicService;
|
||||
import org.nl.wms.sch.tasks.InTask;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* PC端出入库新增
|
||||
@@ -62,6 +66,9 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
|
||||
private final TaskService taskService;
|
||||
|
||||
private final RedissonClient redissonClient;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> pageQuery(Map whereJson, Pageable page) {
|
||||
@@ -655,6 +662,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@SneakyThrows
|
||||
public void allDivStruct(JSONObject form) {
|
||||
String iostorinv_id = form.getString("iostorinv_id");
|
||||
String sect_id = form.getString("sect_id");
|
||||
@@ -670,23 +678,34 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
JSONObject dtl_row = dis_rows.getJSONObject(j);
|
||||
vehicle_set.add(dtl_row.getString("box_no"));
|
||||
}
|
||||
for (String vehicle_code : vehicle_set) {
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("flag", "4");
|
||||
map.put("iostorinv_id", iostorinv_id);
|
||||
map.put("package_box_sn", vehicle_code);
|
||||
JSONArray dtl_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(map).process().getResultJSONArray(0);
|
||||
List<Map> list = new ArrayList<>();
|
||||
for (int i = 0; i < dtl_rows.size(); i++) {
|
||||
JSONObject jo = dtl_rows.getJSONObject(i);
|
||||
list.add(JSON.parseObject(jo.toString(),Map.class));
|
||||
|
||||
RLock lock = redissonClient.getLock("all_div");
|
||||
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
|
||||
|
||||
try {
|
||||
for (String vehicle_code : vehicle_set) {
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("flag", "4");
|
||||
map.put("iostorinv_id", iostorinv_id);
|
||||
map.put("package_box_sn", vehicle_code);
|
||||
JSONArray dtl_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(map).process().getResultJSONArray(0);
|
||||
List<Map> list = new ArrayList<>();
|
||||
for (int i = 0; i < dtl_rows.size(); i++) {
|
||||
JSONObject jo = dtl_rows.getJSONObject(i);
|
||||
list.add(JSON.parseObject(jo.toString(),Map.class));
|
||||
}
|
||||
Map<String,Object> dis_map = new HashMap<>();
|
||||
dis_map.put("tableMater",list);
|
||||
dis_map.put("sect_id",sect_id);
|
||||
dis_map.put("checked",true);
|
||||
this.divStruct(dis_map);
|
||||
}
|
||||
}finally {
|
||||
if (tryLock) {
|
||||
lock.unlock();
|
||||
}
|
||||
Map<String,Object> dis_map = new HashMap<>();
|
||||
dis_map.put("tableMater",list);
|
||||
dis_map.put("sect_id",sect_id);
|
||||
dis_map.put("checked",true);
|
||||
this.divStruct(dis_map);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
||||
@@ -4944,14 +4944,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
||||
int shd_dtl_num = 0; // 送货单明细数
|
||||
|
||||
// 调拨发货单
|
||||
if (StrUtil.equals(bill_type, "1004")) {
|
||||
if (StrUtil.equals(bill_type, "1004") || StrUtil.equals(bill_type, "1009")) {
|
||||
shd_dtl_num = 44;
|
||||
//1.获取系统参数模板地址
|
||||
code_template = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("allot_order").getValue();
|
||||
|
||||
// 5.单组填充
|
||||
JSONObject jsonDtl = dtlTab.query("iostorinv_id = '" + jsonMst.getString("iostorinv_id") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonDtl)) {
|
||||
if (ObjectUtil.isNotEmpty(jsonDtl) && StrUtil.equals(bill_type, "1004")) {
|
||||
// 调拨单号
|
||||
oneMap.put("vbeln", jsonMst.getString("bill_code"));
|
||||
// 调出仓库
|
||||
|
||||
@@ -462,7 +462,8 @@
|
||||
attr.layer_num,
|
||||
attr.block_num,
|
||||
attr.placement_type,
|
||||
sub.sale_order_name
|
||||
sub.sale_order_name,
|
||||
sub.width_standard
|
||||
FROM
|
||||
ST_IVT_IOStorInvDis dis
|
||||
LEFT JOIN ST_IVT_IOStorInv ios ON ios.iostorinv_id = dis.iostorinv_id
|
||||
@@ -791,6 +792,7 @@
|
||||
task.task_type,
|
||||
task.task_status,
|
||||
(case when IFNULL(record.sap_pcsn,'') = '' then sub.sap_pcsn else record.sap_pcsn end) AS sap_pcsn,
|
||||
(case when IFNULL(record.width_standard,'') = '' then sub.width_standard else record.width_standard end) AS width_standard,
|
||||
md.class_name task_type_name
|
||||
FROM
|
||||
st_ivt_iostorinvdis dis
|
||||
|
||||
@@ -819,6 +819,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
map.put("sap批次", json.getString("sap_pcsn"));
|
||||
map.put("箱号", json.getString("box_no"));
|
||||
map.put("重量", json.getString("real_qty"));
|
||||
map.put("幅宽", json.getString("width_standard"));
|
||||
map.put("仓位", json.getString("struct_code"));
|
||||
if (ObjectUtil.isEmpty(json.getString("sale_order_name"))) {
|
||||
throw new BadRequestException("子卷"+json.getString("pcsn")+"销售订单为空!");
|
||||
|
||||
@@ -143,6 +143,7 @@
|
||||
<el-table-column prop="sap_pcsn" label="sap批次号" align="center" show-overflow-tooltip />
|
||||
<el-table-column prop="box_no" label="箱号" align="center" width="250px" show-overflow-tooltip />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column prop="width_standard" label="幅宽" align="center" show-overflow-tooltip />
|
||||
<el-table-column prop="struct_code" label="仓位" align="center" show-overflow-tooltip />
|
||||
<!-- <el-table-column prop="next_point_code" label="目的位置" align="center" />-->
|
||||
<!-- <el-table-column prop="task_code" label="任务号" align="center" />-->
|
||||
|
||||
@@ -521,13 +521,13 @@ export default {
|
||||
}
|
||||
},
|
||||
printExcel(jo) {
|
||||
if (jo.bill_type !== '1004') {
|
||||
if (jo.bill_type !== '1004' && jo.bill_type !== '1009') {
|
||||
if (jo.shd_dtl_num === '') {
|
||||
return this.crud.notify('客户为空!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
}
|
||||
}
|
||||
|
||||
if (jo.bill_type === '1004') {
|
||||
if (jo.bill_type === '1004' || jo.bill_type === '1009') {
|
||||
jo.shd_dtl_num = 44
|
||||
}
|
||||
checkoutbill.getDisNum({ 'iostorinv_id': jo.iostorinv_id }).then(res => {
|
||||
|
||||
Reference in New Issue
Block a user