rev:修改

This commit is contained in:
2026-04-08 23:57:02 +08:00
parent 9062b209df
commit 82273fd884
14 changed files with 212 additions and 26 deletions

View File

@@ -48,7 +48,7 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
queryWrapper.eq(MdPbStoragevehicleinfo::getStoragevehicle_type, storagevehicle_type);
}
queryWrapper.eq(MdPbStoragevehicleinfo::getIs_delete, BaseDataEnum.IS_YES_NOT.code(""));
queryWrapper.orderByDesc(MdPbStoragevehicleinfo::getUpdate_time);
queryWrapper.orderByAsc(MdPbStoragevehicleinfo::getStoragevehicle_code);
return this.baseMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()),
queryWrapper

View File

@@ -136,7 +136,7 @@ public class NotCarToWmsServiceImpl implements NotCarToWmsService {
.eq(SchBasePoint::getRegion_code, "CPQ01")
.eq(SchBasePoint::getIs_used, IOSConstant.ONE)
.eq(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
.orderByDesc(SchBasePoint::getOut_order_seq)
.orderByAsc(SchBasePoint::getOut_order_seq)
.last("LIMIT 3")
);
// 查询无人车点位

View File

@@ -2,7 +2,12 @@ package org.nl.wms.pda.authorization.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.common.logging.annotation.Log;
import org.nl.config.MapOf;
import org.nl.system.service.menu.ISysMenuService;
import org.nl.system.service.param.ISysParamService;
import org.nl.system.service.param.dao.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -11,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Map;
/**
@@ -28,9 +35,95 @@ public class AuthorizationsController {
@Autowired
private ISysMenuService menuService;
@Autowired
private ISysParamService iSysParamService;
@PostMapping(value = "/authority")
@SaIgnore
public ResponseEntity<Object> queryAuthority(@RequestBody Map<String, String> param) {
return new ResponseEntity<>(menuService.queryAuthority(param), HttpStatus.OK);
}
/**
*
*/
@PostMapping("/update")
@Log("获取升级地址")
@SaIgnore
public ResponseEntity<Map> apkUrl() {
Map of = MapOf.of("versionName", "1.0.1", "url", "http://192.168.22.11:8011/api/pda/download/app-release");
// Map of = MapOf.of("versionName", "1.0.1", "url", "http://127.0.0.1:8011/api/pda/download/app-release");
return new ResponseEntity<>(of, HttpStatus.OK);
}
@RequestMapping("/download/app-release")
@SaIgnore
public void setPrint(HttpServletResponse response) {
Param byCode = iSysParamService.findByCode("APP_URL");
if (byCode == null) {
throw new BadRequestException("更新失败:未配置apk下载地址");
}
System.out.println(byCode.getValue());
try {
downloadFile(response, byCode.getValue(), "release");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 附件下载
*
* @param response
* @param fileName
* @param path
* @return
* @throws Exception
*/
public void downloadFile(HttpServletResponse response, String path, String fileName) throws Exception {
if (fileName != null) {
//设置文件路径
File file = new File(path);
if (file.exists()) {
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
try {
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1") + ".apk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
}

View File

@@ -58,6 +58,12 @@ public class PdaProductionController {
public ResponseEntity<Object> takePalletMaterial(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(pdaProductionService.takePalletMaterial(whereJson), HttpStatus.OK);
}
@PostMapping("/clickMaterial")
@Log("点位取货-一键取料")
@SaIgnore
public ResponseEntity<Object> clickMaterial(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(pdaProductionService.clickMaterial(whereJson), HttpStatus.OK);
}
@PostMapping("/takeTheVehicle")
@Log("点位取货-取载具")
@SaIgnore

View File

@@ -43,6 +43,15 @@ public interface PdaProductionService {
*/
PdaResponse takePalletMaterial(JSONObject param);
/**
* 点位取货-一键取料
* @param whereJson {
* search 载具编码
* }
* @return PdaResponse
*/
PdaResponse clickMaterial(JSONObject whereJson);
/**
* 取托盘
* @param param

View File

@@ -32,6 +32,7 @@ public class AssemblyBagParam {
private String username;
@NotBlank(message = "复核人名称不能为空")
private String password;
private BigDecimal total_qty;
public static GroupPlate buildGroupObj(AssemblyBagParam param) {
GroupPlate groupPlate = new GroupPlate();
@@ -45,6 +46,7 @@ public class AssemblyBagParam {
groupPlate.setValidity_period(param.validity_period);
groupPlate.setQty_unit_id("1585604695483879424");
groupPlate.setQty_unit_name("千克");
groupPlate.setTotal_qty(param.getTotal_qty());
groupPlate.setCreate_id(SecurityUtils.getCurrentUserId());
groupPlate.setCreate_name(SecurityUtils.getCurrentNickName());
groupPlate.setCreate_time(DateUtil.now());

View File

@@ -97,7 +97,6 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
@Transactional
public PdaResponse unload(JSONObject whereJson) {
List<JSONObject> rows = whereJson.getJSONArray("rows").toJavaList(JSONObject.class);
String task_group_id = IdUtil.getStringId();
for (int i = 0; i < rows.size(); i++) {
JSONObject json = rows.get(i);

View File

@@ -62,10 +62,16 @@ public class PdaPrintServiceImpl implements PdaPrintService {
Socket socket=null;
try {
// 打印机地址
String print_id = whereJson.getString("print_id");
if (ObjectUtil.isEmpty(print_id)) {
if (ObjectUtil.isEmpty(whereJson.getString("print_id"))) {
throw new BadRequestException("打印机IP为空,请选择打印机!");
}
Dict dict = iSysDictService.getOne(
new QueryWrapper<Dict>().lambda()
.eq(Dict::getCode, "PDA_CONFIG_PRINT")
.eq(Dict::getValue, whereJson.getString("print_id"))
);
String print_id = dict.getPara2();
JSONObject row = whereJson.getJSONObject("row");
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(row.getString("material_code"));
@@ -74,18 +80,37 @@ public class PdaPrintServiceImpl implements PdaPrintService {
// 记录编号
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
String record_no = sysParamService.findByCode("RECORD_NO").getValue();
String record_no1 = sysParamService.findByCode("RECORD_NO1").getValue();
// 物料名称
String material_name = row.getString("material_name");
// 物料批号+批次
String pcsn = row.getString("material_code")+"-"+row.getString("pcsn");
String material_name = row.getString("material_name") + "-"+row.getString("material_code");
// 批次
String pcsn = row.getString("pcsn");
// 质量代码
String quality_code = row.getString("quality_code");
if (ObjectUtil.isNotEmpty(quality_code)) {
pcsn = pcsn + "-" + quality_code;
}
// 经销商
String supp_name = row.getString("supp_name");
// 生产商
String produce_name = materDao.getProduce_name();
// 日期
String data = DateUtil.today();
// 数量
String qty = NumberUtil.round(row.getString("qty"), 2).toString();
// 净重
String qty = NumberUtil.round(row.getString("qty"), 3).toString();
// 皮重
String qty_1 = "";
// 总重
String total_qyt = row.getString("total_qty");
if (ObjectUtil.isNotEmpty(total_qyt)) {
total_qyt = NumberUtil.round(total_qyt, 3).toString();
// 皮重
qty_1 = NumberUtil.round(NumberUtil.sub(total_qyt, qty), 3).toString();
} else {
total_qyt = "";
}
// 袋码
String bag_code = row.getString("bag_code");
// 有效期
@@ -269,7 +294,7 @@ public class PdaPrintServiceImpl implements PdaPrintService {
"^FH\\^FD>:"+bag_code+"^FS\n" +
"^FT378,755^A1I,23,25^FH\\^CI28^FD"+pcsn+"^FS^CI27\n" +
"^FT773,820^A1I,23,25^FH\\^CI28^FD"+material_name+"^FS^CI27\n" +
"^FT505,914^A1I,23,25^FH\\^CI28^FD"+record_no+"^FS^CI27\n" +
"^FT505,914^A1I,23,25^FH\\^CI28^FD"+record_no1+"^FS^CI27\n" +
"^FO111,1057^GFA,645,1100,44,:Z64:eJyN1LGK3DAQBuARKtQEqU0hojxCSoU19isJUqwDm1hwxXX7TDJbuLxHOJkt0irVqTBWZmzvLmzujptqMB9j8Y9lm+D8GNkMoN0kWehYHLPkPoJgE2gw3gkYhwgOYDfB+JxF8aB3RbK+9Gk/SxHQioK2i2SfEtlmhrFkVQLoBu2pjLnbrCq+hpLIPmeytYExV4ZHtOLITn2yv9VmRahZymTzgWyFXdQ1JNAVP7IBnG2FlBGtZmHPgiUbq9V6tNQuNkB7tcDinodqsZqs5X4M2oIFbRdrcdBmAa3XZMPNHtxi1WaN/JRWe364t0/5G9nvmMNQsv0xS+3QmvKKLQk3gTnMq+2mix370382rDZvNr1jcSzZGtDieQ8graXM4M5SZmG1drPuas/+jJmpm2XULZYf+ck7yoyswo3jHNsqttlGcdoK2UocBe24VdLpCEaJAf6mfGj4xc4mlrxYU2TTl3HGPMgWUR7BldQUs9ndVEfKrEI7y1+h9HMzkWUvvAhwXTQv9SWHVMUmfqZdiEn+DA2bVZZRRvYHJgnWeDVUFwtUFVlYC5+Qhbu6Wg3th+0X+n5vVgXxtlUP8cNW0H3Dd79tOwxrtZzu8Wa/ovXvWKD/w2bpSJ6/Zv8BlO8+jQ==:5596\n" +
"^FO715,691^GFA,217,216,8,:Z64:eJw9zjEKwkAQheE/BNxGrK3MFbTbQvQqOcKWgmBi5ZUEmxXBKgdIIbKwhW3sBIt1ZgNO8zEDM/OYMdYCajxUMKgWvvOQjX9lvlSvLU69MXrPpr6TZUeyD2gC0faw9sQ0QOFJF7E8+WjlXplC3AW2qeXln1Ry+lB80BTGSGMC5ihuaiaF5qmZZh12pTkc+7foBtkTm3P+oTnVHziUP3g=:1C17\n" +
"^FO581,694^GFA,229,304,16,:Z64:eJyFzzEOwjAMBVBH7JzFY7dcJagDa6ReIFWlsiBmjtEj/KgS18C5QUYmipMWGBjw9iT72268NYGJLTm+hwWN73qo2+D4EQGiFIsBxzKTGlE2o12d1VR8q05Tsfv4cFUv4ngev4b6uVvnzzVPPHah+vJ2lLp/VKcoOcKioa4/qbsh5TaI2pqh3L8/sn6i/WT6SfeXqvm/DvmP/WaD1byZFrwAXqNleg==:1BD3\n" +
@@ -277,7 +302,7 @@ public class PdaPrintServiceImpl implements PdaPrintService {
"^FT576,697^A1I,23,25^FH\\^CI28^FD"+bag_code+"^FS^CI27\n" +
"^FO317,690^GFA,205,189,7,:Z64:eJwljjEKwkAURN/ywW1E2y3EvULKgIFcZSEXSGmnx/A4AcFTpIgEUglumWrXv7H4vGLmzwxAo0c2ybxsnvB2L0+wo0PArDUyQaxoB+grLmq+9kXjE5AIS+BWwxzoHLynApMC31HfA/MJXDBz2pApoANRiB0OPmIT57VqVfMPjhq906DSoLGlXdHeNzT/va5M5gfuwyjr:BA73\n" +
"^FO153,690^GFA,317,460,20,:Z64:eJyN0LFKA0EQBuAfArPNcNtucImv8NvoFcF7FSEvcGBjYaEIqfJQK4I2eYCUFwLW9wBCnN27mJA0TrcfuzOzP2Dle1xUrC+N+g+bi1DZIBGu07uOZiISay5eUwtt9Z6juZ7pvXtCCFqbzbIh/BnD0ZANZnZPs016YvGwAbRY6VeR+x03uP5RHuaq9dtxjRC1eTmxj2whEoNV2b5uVsXGfjOz7ed0ZVnM2RZztzbjcTldomqfQ5nRvH37jo2Yue3ap7IfJMcnVzKGlP+BclB/bpaJdwfD0SZnZm+rE8NgUQbz+/QLNlA+rg==:F877\n" +
"^FT150,697^A1I,23,25^FH\\^CI28^FD"+qty+"^FS^CI27\n" +
"^FT150,697^A1I,23,25^FH\\^CI28^FD"+qty_1+"^FS^CI27\n" +
"^FO715,634^GFA,193,182,7,:Z64:eJwdjTEOwjAMRV/kIRtdO+QWLJGolMP0EmyYhRGuFNQVcQKGSD0AHTugBqdenqVv/weV7oevhVSRCQ7+hoB3d6Tg9E3KFF6cYImhZefYIwtDgEvEbhh7kB1Sle8Hd83MocHNG2KoNDBa9SMjPstq69a+zQxHOqtm1GZg0maXZyYpXmHYBZjH5g++sSu6:E28C\n" +
"^FO545,631^GFA,309,460,20,:Z64:eJyN0L9KA0EQBvAPAnPNcNte8MgzfDZ6RfBeZSEvEEhjGRFS+VAbAtr4ACk3HFhfaRdnXEM0aZxtlh/MX8AijLiKtrs26j9sLkJlj0To/ZDsA4hI23HxlJbQB8bVulg1Mm3zI7RjPKQ0c0PzY2xiOhuK0U3dJiOxiPtiudSryeNAtxxTLKZWb+A7tF//sZ0b4fXcare325dTD7eZ2eF16rb0+cyqO+ux2kw30CaXPfrnj5DZi1vYfdq+Nh/Ezyc3AjtPBHwPexYaLs1uEqqT4WyTC7Pc+pehWCvfZnMcvwC491j6:81B6\n" +
"^FO317,632^GFA,217,196,7,:Z64:eJwtjjEKwkAURN/ywW3Cpk0R9AopAwq5SiAXSGllPIAH8BgeYUHwFCILaQVTbiGJP4sDw3z+wMyAoiKhVy4QsUuAN3LXh17yF2XIaDx4x54kq/faIhMSS4Ya52u6gs1YreKWG58nQ2gZS/MNrRlnsuCN9pQn6GCneWK9e7TYGXPpG/Xkesw12mqmSh5Tu+jO5px2HrR2giKt/gHlVS7b:0BB4\n" +
@@ -297,6 +322,8 @@ public class PdaPrintServiceImpl implements PdaPrintService {
"^FO582,213^GFA,237,285,15,:Z64:eJx9zjEOgkAQBdAxmyzNZG2/CZErUG7lWXZvwAkMhsJDeBiHUNh5hqWxho6CwkG0sGG6l5+ZP0RmEIl3Y22WEoicTxLHxlqugpI5SGyVQIUjMZUS625h+eNFU4IHk6PDlwzdNVJIvOrlYs6VVDmJsxI5LwRLXy/ESkivuw7YT9qLsu2bxrnce00tQpce5nZyn6/MkJ7hvBtfWQraqyO0TtCvtkgb9P8spjeReTug:A02F\n" +
"^FO145,453^GFA,565,726,33,:Z64:eJx10jFLAzEUAOAXAi9L2qwRT/0LAZcWxPsrEaGTQ0cne+DaH1An/8KBIA4OJ8K5BOduRg6cHOoiFcrFl7ur2oK5G0Luy3svlwfQDAug25mBrSHpIYBwDAiIaFgoAOj1zYe4ESOQYKTKEgI8ezo/qY74ZQcM8Ag0AUKiNsPsOa0+FSKBNAQYTy4zAqYBliIMM7dbleI65o51+YQVP6AgsDebq9OS3cy6FGuABB4yxEPU896bg+quA0USS7ZWhGkDPiEp+iMHrznImIER8BGgUfLxTYXbeNqRY68e/4KJjyke3/fFEYKOYOFFWG5G0LI8S3v3tI6jFcs3I4BNw1KWA/G1xGJOEbjZBvtmLEsN/hyrmSAwWGwBNAvpDHzc4YXmBIazFrTHTAOVlMuXBbvKsU9ghTvTtsj2R2kq8sRLZ/lujRgj4E7WRbAJi3dh4VTLwnKV08YfoMJqfVkWyqRXeFUbdE2Egwjw97otr6VMa5SG1vmFU6HuUnQN49m0WZCGUohy1Reg2iLblqOTJs0kGdOv7oOjKa7btGvaf8Y3AFWrhg==:9532\n" +
"^FO259,388^GFA,269,330,15,:Z64:eJyTb2AAgToGCCh4ACIZD0NEGRISwNxGKPcAmCvNCJM9ACIlm6F67cHCEv+gXMbD/Tb2DQbsfDYf/vAf+Md4mE0iEcjlkUg4w3OwjZ+ZTeIAQ4INj0Rim0Qy0BAwNw3KNTgM5h7mkUhutyiGcg8gcx/AuQ0/Ds+3KWZsfsxX87ndovAMf+P3H/aMDXbs9x+3WxT8ATmFmRlMArk8OLmMbRIJEC4bmHtO5gGYWw/mMgDdDDaKASzIUMEODQMeBhgAAMOSRSk=:5649\n" +
"^FT544,640^A1I,23,25^FH\\^CI28^FD"+total_qyt+"^FS^CI27\n" +
"^FT152,640^A1I,23,25^FH\\^CI28^FD"+qty+"^FS^CI27\n" +
"^PQ1,0,1,Y\n" +
"^XZ\n";
}
@@ -323,20 +350,30 @@ public class PdaPrintServiceImpl implements PdaPrintService {
Socket socket=null;
try {
// 打印机地址
String print_id = whereJson.getString("print_id");
if (ObjectUtil.isEmpty(print_id)) {
if (ObjectUtil.isEmpty(whereJson.getString("print_id"))) {
throw new BadRequestException("打印机IP为空,请选择打印机!");
}
Dict dict = iSysDictService.getOne(
new QueryWrapper<Dict>().lambda()
.eq(Dict::getCode, "PDA_CONFIG_PRINT")
.eq(Dict::getValue, whereJson.getString("print_id"))
);
String print_id = dict.getPara2();
JSONObject row = whereJson.getJSONObject("row");
// 记录编号
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
String record_no = sysParamService.findByCode("RECORD_NO").getValue();
String record_no = sysParamService.findByCode("RECORD_NO1").getValue();
// 物料名称
String material_name = row.getString("material_name");
// 物料批号+批次
String pcsn = row.getString("material_code")+"-"+row.getString("pcsn");
String material_name = row.getString("material_name")+ "-"+row.getString("material_code");
// 批次
String pcsn = row.getString("pcsn");
// 质量代码
String quality_code = row.getString("quality_code");
if (ObjectUtil.isNotEmpty(quality_code)) {
pcsn = pcsn + "-" + quality_code;
}
// 数量
String bucket_weight = NumberUtil.round(row.getString("bucket_weight"), 2).toString();
String bucket_weight = NumberUtil.round(row.getString("bucket_weight"), 3).toString();
// 桶号
String bucket_code = row.getString("bucket_code");
// 插入打印记录

View File

@@ -280,6 +280,30 @@ public class PdaProductionServiceImpl implements PdaProductionService {
return PdaResponse.requestOk("取料成功!");
}
@Override
@Transactional
public PdaResponse clickMaterial(JSONObject whereJson) {
String vehicle_code = whereJson.getString("search");
storagevehicleinfoService.getByCode(vehicle_code);
// 查询
List<GroupPlate> list = groupplateService.list(
new QueryWrapper<GroupPlate>().lambda()
.eq(GroupPlate::getVehicle_code, vehicle_code)
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("待取货"))
);
if (ObjectUtil.isEmpty(list)) {
throw new BadRequestException("此载具【"+vehicle_code+"】没有待取货的袋信息!");
}
// 删除此托盘上的袋信息(待取货状态)
groupplateService.remove(
new QueryWrapper<GroupPlate>().lambda()
.eq(GroupPlate::getVehicle_code, vehicle_code)
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("待取货"))
);
return PdaResponse.requestOk();
}
@Override
public PdaResponse takeTheVehicle(JSONObject param) {
// search

View File

@@ -131,6 +131,16 @@ public class EmpVehicleInTask extends AbstractTask {
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
taskObj.setRemark("执行中");
taskService.updateById(taskObj);
// 更新点位状态
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getIng_task_code, "")
.set(SchBasePoint::getMaterial_pcsn, "")
.set(SchBasePoint::getMaterial_qty, "")
.set(SchBasePoint::getMaterial_id, "")
);
}
if (status.equals(TaskStatus.FINISHED)) {
this.finishTask(taskObj);

View File

@@ -79,7 +79,7 @@ public enum IOSEnum {
INBILL_DIS_STATUS(MapOf.of("未生成", "00", "生成", "01", "执行中", "02", "完成", "99")),
//组盘记录状态
GROUP_PLATE_STATUS(MapOf.of( "生成", "0","组盘", "1", "入库", "2", "出库", "3")),
GROUP_PLATE_STATUS(MapOf.of( "生成", "0","组盘", "1", "入库", "2", "出库", "3", "待取货", "4")),
// 锁类型
LOCK_TYPE(MapOf.of("未锁定", "0", "入库锁", "1", "出库锁", "2"

View File

@@ -55,7 +55,7 @@ public class GroupPlate implements Serializable {
private String qty_unit_name;
/**
* 组盘数量
* 净重
*/
private BigDecimal qty;
@@ -95,6 +95,11 @@ public class GroupPlate implements Serializable {
*/
private String create_time;
/**
* 总重
*/
private BigDecimal total_qty;
/**
* 袋明细
*/