rev:物料参数保存报错、软废库存是否可用不一致、入库分配删除桶不生效

This commit is contained in:
2023-06-07 18:40:55 +08:00
parent 3c34900441
commit 975bd75f65
5 changed files with 76 additions and 34 deletions

View File

@@ -156,6 +156,20 @@ public class PdaBucketServiceImpl implements PdaBucketService {
//2.假如桶码没有就插入,有就更新 桶记录表
JSONObject bucketJo = new JSONObject();
if (StrUtil.isNotEmpty(bucketunique)) {
// 校验此桶是否有未完成的单据
JSONObject map = new JSONObject();
map.put("flag", "16");
map.put("bucketunique", bucketunique);
JSONArray iosList = WQL.getWO("QPADSTSETSERVICE").addParamMap(map).process().getResultJSONArray(0);
if (ObjectUtil.isNotEmpty(iosList)) {
boolean is_emp = iosList.stream()
.map(row -> (JSONObject) row)
.allMatch(row -> row.getString("is_active").equals(is_active));
if (!is_emp) throw new PdaRequestException("此桶库存是否可用与选择是否可用不一致"+bucketunique+"!");
}
bucketJo = bucketRecordTable.query("bucketunique='" + bucketunique + "'").uniqueResult(0);
String before_storage_qty = bucketJo.getString("storage_qty");
bucketJo.put("storagevehicle_type", "04");

View File

@@ -478,3 +478,20 @@
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "16"
QUERY
SELECT
dis.*
FROM
st_ivt_iostorinvdisdtl dis
LEFT JOIN ST_IVT_IOStorInv mst ON mst.iostorinv_id = dis.iostorinv_id
WHERE
mst.io_type = '0'
OPTION 输入.bucketunique <> ""
dis.bucketunique = 输入.bucketunique
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -16,6 +16,7 @@ import org.apache.commons.lang3.StringUtils;
import org.nl.modules.system.domain.DictDetail;
import org.nl.modules.system.repository.DictDetailRepository;
import org.nl.utils.SecurityUtils;
import org.nl.utils.SpringContextHolder;
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
import org.nl.wms.basedata.pdm.service.WasteBallTimeService;
import org.nl.wms.basedata.pdm.service.dto.WastecchangeDto;
@@ -56,7 +57,7 @@ public class WasteBallTimeServiceImpl implements WasteBallTimeService {
map.put("material_code", "%" + material_code + "%");
}
map.put("class_ids", MaterOptTypeEnum.THW.getClass_idStr());
List<DictDetail> rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE");
List<DictDetail> rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE");
Map<String, String> typeMap = rfType.stream().collect(HashMap::new, (k, v) -> k.put(v.getValue(), v.getLabel()), HashMap::putAll);
JSONObject allmaterialIds = WQL.getWO("PDM_WASTEBALLTIME").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mater.material_code");
@@ -129,7 +130,7 @@ public class WasteBallTimeServiceImpl implements WasteBallTimeService {
@Override
@Transactional(rollbackFor = Exception.class)
public void update(JSONObject form) {
List<String> rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList());
List<String> rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList());
JSONObject allData = new JSONObject();
for (String key : rfType) {
allData.put(key,form.get(key));

View File

@@ -15,6 +15,7 @@ import org.nl.exception.BadRequestException;
import org.nl.modules.system.domain.DictDetail;
import org.nl.modules.system.repository.DictDetailRepository;
import org.nl.modules.system.service.DictDetailService;
import org.nl.utils.SpringContextHolder;
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
import org.nl.wms.basedata.pdm.service.WastecchangeService;
import org.nl.wms.basedata.pdm.service.dto.WastecchangeDto;
@@ -53,7 +54,6 @@ public class WastecchangeServiceImpl implements WastecchangeService {
@Autowired
private DictDetailRepository dictDetailRepository;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
String material_code = MapUtil.getStr(whereJson, "material_code");
@@ -97,7 +97,7 @@ public class WastecchangeServiceImpl implements WastecchangeService {
JSONObject allmaterialIds = WQL.getWO("PDM_WASTECCHANGE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mater.material_code");
JSONArray array = allmaterialIds.getJSONArray("content");
//label:name;value:code
List<DictDetail> rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE");
List<DictDetail> rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE");
Map<String, String> typeMap = rfType.stream().collect(HashMap::new, (k, v) -> k.put(v.getValue(), v.getLabel()), HashMap::putAll);
JSONArray array2 = new JSONArray();
if (ObjectUtil.isNotEmpty(array)){
@@ -141,7 +141,7 @@ public class WastecchangeServiceImpl implements WastecchangeService {
@Override
@Transactional(rollbackFor = Exception.class)
public void update(JSONObject form) {
List<String> rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList());
List<String> rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList());
JSONObject allData = new JSONObject();
for (String key : rfType) {
allData.put(key,form.get(key));
@@ -254,7 +254,7 @@ public class WastecchangeServiceImpl implements WastecchangeService {
@Transactional(rollbackFor = Exception.class)
public JSONArray contentShift(JSONObject json) {
List<String> rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList());
List<String> rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList());
JSONArray rf_arr = new JSONArray();
rfType.forEach(a->{
JSONObject json_CF = new JSONObject();

View File

@@ -14,7 +14,7 @@
<span class="el-dialog__title2">入库分配</span>
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
<slot name="left"/>
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
</span>
</div>
@@ -51,10 +51,10 @@
</el-select>
</template>
</el-table-column>
<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="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
<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="plan_qty" :formatter="crud.formatNum3" label="重量" align="center"/>
<el-table-column
show-overflow-tooltip
prop="assign_qty"
@@ -69,15 +69,16 @@
label="未分配数量"
align="center"
/>
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
<el-table-column show-overflow-tooltip prop="source_bill_type_name" label="源单类型" align="center" />
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单编号" align="center" />
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center"/>
<el-table-column show-overflow-tooltip prop="source_bill_type_name" label="源单类型" align="center"/>
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单编号" align="center"/>
</el-table>
</el-card>
<el-card class="box-card" shadow="never" :body-style="{padding:'20px 20px 0 20px'}">
<el-form ref="form2" :inline="true" :model="form" :rules="rules" size="mini">
<el-form-item label="载具号" prop="storagevehicle_code">
<el-input v-model.trim="form.storagevehicle_code" placeholder="载具号" style="width: 200px" @blur="vehicleCheck" />
<el-input v-model.trim="form.storagevehicle_code" placeholder="载具号" style="width: 200px"
@blur="vehicleCheck"/>
</el-form-item>
<el-form-item label="桶号" prop="bucketunique">
<el-input
@@ -87,7 +88,7 @@
class="input-with-select"
style="width: 200px"
>
<el-button slot="append" icon="el-icon-search" @click="dialogBucket" />
<el-button slot="append" icon="el-icon-search" @click="dialogBucket"/>
</el-input>
</el-form-item>
<el-form-item label="放入重量" prop="storage_qty">
@@ -140,7 +141,7 @@
</div>
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
<slot name="left"/>
<el-button
slot="left"
class="filter-item"
@@ -203,12 +204,12 @@
border
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" />
<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="storagevehicle_code" label="托盘号" align="center" />
<el-table-column show-overflow-tooltip prop="bucketunique" label="桶号" align="center" />
<el-table-column show-overflow-tooltip type="index" label="序号" align="center"/>
<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="storagevehicle_code" label="托盘号" align="center"/>
<el-table-column show-overflow-tooltip prop="bucketunique" label="桶号" align="center"/>
<el-table-column
show-overflow-tooltip
prop="storage_qty"
@@ -216,25 +217,28 @@
label="重量"
align="center"
/>
<el-table-column show-overflow-tooltip prop="point_code" label="入库点" align="center" />
<el-table-column show-overflow-tooltip prop="struct_code" label="货位" align="center" />
<el-table-column show-overflow-tooltip prop="point_code" label="入库点" align="center"/>
<el-table-column show-overflow-tooltip prop="struct_code" label="货位" align="center"/>
<el-table-column align="center" label="操作" width="190" fixed="right">
<template slot-scope="scope">
<el-popover v-model="scope.row.pop" placement="top" width="180" trigger="manual">
<p>{{ '是否确认删除桶明细?' }}</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="doCancel(scope.row)">取消</el-button>
<el-button type="primary" size="mini" @click.native.prevent="deleteRow(scope.$index, form.tableMater)">确定</el-button>
<el-button type="primary" size="mini" @click.native.prevent="deleteRow(scope.$index, form.tableMater)">
确定
</el-button>
</div>
<el-button slot="reference" :disabled="scope.row.struct_code !== '' && scope.row.struct_code" type="danger" icon="el-icon-delete" size="mini" @click="toDelete(scope.row)" />
<el-button slot="reference" :disabled="scope.row.struct_code !== '' && scope.row.struct_code"
type="danger" icon="el-icon-delete" size="mini" @click="toDelete(scope.row)"/>
</el-popover>
</template>
</el-table-column>
</el-table>
</el-card>
<StructDiv ref="child" :dialog-show.sync="structShow" :sect-prop="sectProp" @tableChanged="tableChanged" />
<BucketDialog :dialog-show.sync="bucketShow" :bucket-prop="bucketProp" @bucketChange="bucketChange" />
<StructDiv ref="child" :dialog-show.sync="structShow" :sect-prop="sectProp" @tableChanged="tableChanged"/>
<BucketDialog :dialog-show.sync="bucketShow" :bucket-prop="bucketProp" @bucketChange="bucketChange"/>
</el-dialog>
</template>
@@ -330,7 +334,8 @@ export default {
})
},
toDelete(data) {
data.pop = true
this.$set(data, 'pop', true)
// data.pop = true
},
close() {
this.form.tableMater = []
@@ -395,7 +400,8 @@ export default {
return
}
dis_dtl.storagevehicle_code = this.form.storagevehicle_code
dis_dtl.pop = false
// dis_dtl.pop = false
this.$set(dis_dtl, 'pop', false)
this.form.tableMater.splice(this.form.tableMater.length, 0, dis_dtl)
if (this.form.dtl_row.assign_qty) {
this.form.dtl_row.assign_qty = parseFloat(this.form.dtl_row.assign_qty) + parseFloat(this.form.storage_qty)
@@ -444,6 +450,7 @@ export default {
})
},
deleteRow(index, rows) {
debugger
// 如果桶状态不是生成调后台逻辑
if (rows[index].status !== '01') {
crudRawAssist.deleteDisDtl(rows[index]).then(res => {
@@ -453,9 +460,11 @@ export default {
crudRawAssist.getDisDtl(this.form.dtl_row).then(res => {
this.form.tableMater = res
})
rows[index].pop = false
// rows[index].pop = false
this.$set(rows[index], 'pop', false)
}).catch(err => {
rows[index].pop = false
// rows[index].pop = false
this.$set(rows[index], 'pop', false)
return
})
}
@@ -553,7 +562,8 @@ export default {
}
},
doCancel(data) {
data.pop = false
this.$set(data, 'pop', false)
// data.pop = false
},
unDivStruct() {
if (this.form.tableMater.length <= 0) {