add:组盘修改删除/包装机新增字段
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
package org.nl.wms.masterdata_manage.controller.vehicle;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
|
||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -16,6 +18,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -40,6 +43,21 @@ public class MdPbBucketrecordController {
|
||||
return new ResponseEntity<>(iMdPbBucketrecordService.queryAll(whereJson,page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改桶记录表")
|
||||
//("查询桶记录表")
|
||||
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson) {
|
||||
iMdPbBucketrecordService.updateById(whereJson.toJavaObject(MdPbBucketrecord.class));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
@Log("删除桶记录表")
|
||||
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
|
||||
iMdPbBucketrecordService.removeByIds(Arrays.asList(ids));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/excelImport")
|
||||
@Log("导入组盘信息")
|
||||
|
||||
@@ -168,19 +168,11 @@ public class MdPbBucketrecordServiceImpl extends ServiceImpl<MdPbBucketrecordMap
|
||||
String now = DateUtil.now();
|
||||
String pcsn = DateUtil.today();
|
||||
|
||||
List<MpsSaleOrder> sales = saleOrderService.list(new QueryWrapper<MpsSaleOrder>().in("sale_code", data.stream().map(MdPbBucketrecord::getSale_code).collect(Collectors.toSet())));
|
||||
HashMap<String, Integer> max = new HashMap<>();
|
||||
for (MpsSaleOrder sale : sales) {
|
||||
Integer integer = max.get(sale.getSale_code());
|
||||
if (integer==null){
|
||||
max.put(sale.getSale_code(),0);
|
||||
}else {
|
||||
max.put(sale.getSale_code(),Math.max(integer,sale.getSeq_no()));
|
||||
}
|
||||
}
|
||||
List<MpsSaleOrder> sales = saleOrderService
|
||||
.list(new QueryWrapper<MpsSaleOrder>()
|
||||
.in("sale_code", data.stream().map(MdPbBucketrecord::getSale_code).collect(Collectors.toSet())));
|
||||
|
||||
List<MpsSaleOrder> arrayList = new ArrayList<>();
|
||||
Map<String, Integer> hashMap = new HashMap<>();
|
||||
for (MdPbBucketrecord datum : data) {
|
||||
datum.setBucket_record_id(IdUtil.getStringId());
|
||||
String bucketunique = datum.getBucketunique();
|
||||
@@ -204,31 +196,49 @@ public class MdPbBucketrecordServiceImpl extends ServiceImpl<MdPbBucketrecordMap
|
||||
datum.setQty_unit_name("个/只");
|
||||
datum.setStatus(MasterEnum.BOX_STATUS.code("生成"));
|
||||
//手动插入销售订单
|
||||
MpsSaleOrder mpsSaleOrder = new MpsSaleOrder();
|
||||
mpsSaleOrder.setSale_id(IdUtil.getStringId());
|
||||
mpsSaleOrder.setSale_code(datum.getSale_code());
|
||||
mpsSaleOrder.setSale_qty(new BigDecimal(datum.getStorage_qty()));
|
||||
mpsSaleOrder.setIs_delete(0);
|
||||
mpsSaleOrder.setMaterial_id(datum.getMaterial_id());
|
||||
mpsSaleOrder.setMaterial_code(datum.getMaterial_code());
|
||||
mpsSaleOrder.setMaterial_spec(datum.getMaterial_spec());
|
||||
mpsSaleOrder.setProduct_area("A1");
|
||||
mpsSaleOrder.setContract_code(datum.getContract_code());
|
||||
mpsSaleOrder.setStatus(IOSEnum.ORDER_STATUS.code("生成"));
|
||||
mpsSaleOrder.setStatus("10");
|
||||
Integer integer = hashMap.get(mpsSaleOrder.getSale_code());
|
||||
if (integer==null){
|
||||
List<MpsSaleOrder> mpsSaleOrders = sales.stream().filter(a -> a.getSale_code().equals(datum.getSale_code())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(mpsSaleOrders)){
|
||||
MpsSaleOrder mpsSaleOrder = new MpsSaleOrder();
|
||||
mpsSaleOrder.setSale_id(IdUtil.getStringId());
|
||||
mpsSaleOrder.setSale_code(datum.getSale_code());
|
||||
mpsSaleOrder.setSale_qty(new BigDecimal(datum.getStorage_qty()));
|
||||
mpsSaleOrder.setIs_delete(0);
|
||||
mpsSaleOrder.setMaterial_id(datum.getMaterial_id());
|
||||
mpsSaleOrder.setMaterial_code(datum.getMaterial_code());
|
||||
mpsSaleOrder.setMaterial_spec(datum.getMaterial_spec());
|
||||
mpsSaleOrder.setProduct_area("A1");
|
||||
mpsSaleOrder.setContract_code(datum.getContract_code());
|
||||
mpsSaleOrder.setStatus(IOSEnum.ORDER_STATUS.code("生成"));
|
||||
mpsSaleOrder.setStatus("10");
|
||||
mpsSaleOrder.setSeq_no(100);
|
||||
hashMap.put(mpsSaleOrder.getSale_code(),100);
|
||||
datum.setSeq_no(mpsSaleOrder.getSeq_no());
|
||||
arrayList.add(mpsSaleOrder);
|
||||
sales.add(mpsSaleOrder);
|
||||
}else {
|
||||
int nowno = integer + 100;
|
||||
mpsSaleOrder.setSeq_no(nowno);
|
||||
hashMap.put(mpsSaleOrder.getSale_code(),nowno);
|
||||
List<MpsSaleOrder> collect = mpsSaleOrders.stream().filter(a -> a.getMaterial_code().equals(datum.getMaterial_code())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(collect)){
|
||||
MpsSaleOrder max = mpsSaleOrders.stream().max(Comparator.comparing(MpsSaleOrder::getSeq_no)).get();
|
||||
MpsSaleOrder mpsSaleOrder = new MpsSaleOrder();
|
||||
mpsSaleOrder.setSale_id(IdUtil.getStringId());
|
||||
mpsSaleOrder.setSale_code(datum.getSale_code());
|
||||
mpsSaleOrder.setSale_qty(new BigDecimal(datum.getStorage_qty()));
|
||||
mpsSaleOrder.setIs_delete(0);
|
||||
mpsSaleOrder.setMaterial_id(datum.getMaterial_id());
|
||||
mpsSaleOrder.setMaterial_code(datum.getMaterial_code());
|
||||
mpsSaleOrder.setMaterial_spec(datum.getMaterial_spec());
|
||||
mpsSaleOrder.setProduct_area("A1");
|
||||
mpsSaleOrder.setContract_code(datum.getContract_code());
|
||||
mpsSaleOrder.setStatus(IOSEnum.ORDER_STATUS.code("生成"));
|
||||
mpsSaleOrder.setStatus("10");
|
||||
mpsSaleOrder.setSeq_no(max.getSeq_no()+100);
|
||||
datum.setSeq_no(mpsSaleOrder.getSeq_no());
|
||||
arrayList.add(mpsSaleOrder);
|
||||
sales.add(mpsSaleOrder);
|
||||
}else {
|
||||
datum.setSeq_no(collect.get(0).getSeq_no());
|
||||
}
|
||||
}
|
||||
Integer hasno = max.get(mpsSaleOrder.getSale_code())==null?0:max.get(mpsSaleOrder.getSale_code());
|
||||
mpsSaleOrder.setSeq_no(mpsSaleOrder.getSeq_no()+hasno);
|
||||
datum.setSeq_no(mpsSaleOrder.getSeq_no());
|
||||
arrayList.add(mpsSaleOrder);
|
||||
|
||||
}
|
||||
List<MdPbBucketrecord> has = this.list(new QueryWrapper<MdPbBucketrecord>()
|
||||
.in("sale_code", data.stream().map(MdPbBucketrecord::getSale_code).collect(Collectors.toSet())));
|
||||
@@ -241,8 +251,9 @@ public class MdPbBucketrecordServiceImpl extends ServiceImpl<MdPbBucketrecordMap
|
||||
}
|
||||
|
||||
this.saveBatch(data);
|
||||
saleOrderService.saveBatch(arrayList);
|
||||
|
||||
if (!CollectionUtils.isEmpty(arrayList)){
|
||||
saleOrderService.saveBatch(arrayList);
|
||||
}
|
||||
//新增销售单:
|
||||
}catch (Exception ex){
|
||||
throw new BadRequestException(ex.getMessage());
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
package org.nl.wms.pda_manage.pda.controller;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/7/3 15:29
|
||||
* 刻字相关临时方案
|
||||
*/
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveCallService;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.plotter.PlotterCallEmptyTask;
|
||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/pda/package")
|
||||
@Slf4j
|
||||
@SaIgnore
|
||||
public class TmpPackageController {
|
||||
|
||||
@Autowired
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
@Autowired
|
||||
private ISchBasePointService basePointService;
|
||||
@Autowired
|
||||
private IPdmProduceWorkorderService workorderService;
|
||||
|
||||
|
||||
@PostMapping("packageList")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> packageList(){
|
||||
//workorderService.list(new QueryWrapper<PdmProduceWorkorder>().eq())
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("sendVechile")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> callVechile(@RequestBody JSONObject param){
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("cachepoint")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> kzpoint(@RequestBody JSONObject param) {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("device_code", "A1_KZ_SL");
|
||||
JSONObject result = wmsToAcsService.request(jo, "api/wms/startDischarge");
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("callVechile")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> kzresidue(@RequestBody JSONObject param){
|
||||
RedissonUtils.lock(()->{
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("next_point_code", param.getString("device_code"));
|
||||
jo.put("start_point_code", "A1_KZ_SL");
|
||||
jo.put("weight", param.getString("qty"));
|
||||
JSONObject result = wmsToAcsService.request(jo, "api/wms/putOver");
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
},"kzresidue",null);
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
@@ -272,9 +272,9 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
||||
if (CollectionUtils.isEmpty(cps)){
|
||||
throw new BadRequestException("库存不足");
|
||||
}
|
||||
for (StIvtStructivtCp ivtDao : cps) {
|
||||
for (StIvtStructivtCp ivtDao : cps) {//分配规则需要考虑托盘跟数量
|
||||
if (unassign_qty<=0){
|
||||
return;
|
||||
break;
|
||||
}
|
||||
// 更新未分配数
|
||||
unassign_qty = NumberUtil.sub(unassign_qty,ivtDao.getCanuse_qty().doubleValue());
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="装箱机" prop="ealing_device_code">
|
||||
<el-input v-model="form.package_ext.ealing_device_code" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="是否翻转" prop="is_foreward">
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="拆箱输送正转" prop="is_foreward">
|
||||
<el-radio
|
||||
v-for="item in dict.IS_OR_NOT"
|
||||
:key="item.id"
|
||||
@@ -161,6 +161,13 @@
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="码盘数量" prop="tray_num">
|
||||
<el-input-number
|
||||
v-model="form.package_ext.tray_num"
|
||||
style="width: 200px;"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="装箱模版" prop="package_model">
|
||||
<el-input v-model="form.package_ext.package_model" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
|
||||
@@ -409,7 +409,7 @@
|
||||
<el-option v-for="item in zxj" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="是否翻转" prop="is_foreward">
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="拆箱输送正转" prop="is_foreward">
|
||||
<el-radio
|
||||
v-for="item in dict.IS_OR_NOT"
|
||||
:key="item.id"
|
||||
@@ -433,6 +433,13 @@
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="码盘数量" prop="tray_num">
|
||||
<el-input-number
|
||||
v-model="form.package_ext.tray_num"
|
||||
style="width: 200px;"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workprocedure_id == '1535144822984282112'" label="装箱模版" prop="package_model">
|
||||
<el-input-number
|
||||
v-model="form.package_ext.package_model"
|
||||
|
||||
@@ -79,7 +79,14 @@
|
||||
<el-input v-model="form.create_time" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-input v-model="form.status" style="width: 200px;" />
|
||||
<el-select v-model="form.status" placeholder="" style="width: 200px">
|
||||
<el-option
|
||||
v-for="item in dict.BOX_STATUS"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -99,11 +106,19 @@
|
||||
<el-table-column prop="material_code" label="物料编码"/>
|
||||
<el-table-column prop="material_spec" label="物料规格"/>
|
||||
<el-table-column prop="storage_qty" label="数量"/>
|
||||
<el-table-column prop="qty_unit_id" label="计量单位"/>
|
||||
<el-table-column prop="qty_unit_name" label="计量单位"/>
|
||||
<el-table-column prop="create_time" label="组盘时间"/>
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.PCS_DELI_STATUS[scope.row.status] }}
|
||||
{{ dict.label.BOX_STATUS[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -155,7 +170,7 @@ const defaultForm = {
|
||||
}
|
||||
export default {
|
||||
name: 'DeliveryOrder',
|
||||
dicts: ['PCS_DELIVER_TYPE', 'PCS_DELI_STATUS'],
|
||||
dicts: ['PCS_DELIVER_TYPE', 'BOX_STATUS'],
|
||||
components: {pagination, crudOperation, rrOperation, udOperation, Treeselect, Dialog, UploadDialog},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
@@ -164,7 +179,7 @@ export default {
|
||||
optShow: {
|
||||
add: true,
|
||||
edit: false,
|
||||
del: false,
|
||||
del: true,
|
||||
reset: true,
|
||||
download: false
|
||||
},
|
||||
@@ -188,6 +203,8 @@ export default {
|
||||
this.initClass3()
|
||||
},
|
||||
methods: {
|
||||
deletrow(row){},
|
||||
updaterow(row){},
|
||||
queryClassId() {
|
||||
const param = {
|
||||
'class_idStr': this.class_idStr
|
||||
|
||||
Reference in New Issue
Block a user