add:组盘修改删除/包装机新增字段

This commit is contained in:
zhangzhiqiang
2023-08-08 22:06:19 +08:00
parent fdf577f540
commit ef17d390f7
7 changed files with 205 additions and 44 deletions

View File

@@ -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("导入组盘信息")

View File

@@ -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());

View File

@@ -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);
}
}

View File

@@ -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());