opt:优化
This commit is contained in:
@@ -64,13 +64,6 @@ public class MaterialbaseController {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/materialSync")
|
||||
@Log("物料同步")
|
||||
public ResponseEntity<Object> materialSync(@RequestBody JSONObject whereJson) {
|
||||
iMdMeMaterialbaseService.materialSync(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
@Log("查询物料操作类型")
|
||||
@PostMapping("/getMaterOptType")
|
||||
public ResponseEntity<Object> getMaterOptType(@RequestBody Map map) {
|
||||
String materOpt_code = MapUtil.getStr(map, "materOpt_code");
|
||||
|
||||
@@ -44,14 +44,6 @@ public interface IMdMeMaterialbaseService extends IService<MdMeMaterialbase> {
|
||||
*/
|
||||
void delete(Set<String> ids);
|
||||
|
||||
/**
|
||||
* 物料同步
|
||||
* @param whereJson {
|
||||
* --
|
||||
* }
|
||||
*/
|
||||
void materialSync(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 根据编码获取物料
|
||||
* @param material_code 物料编码
|
||||
|
||||
@@ -105,45 +105,6 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
|
||||
this.baseMapper.deleteBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void materialSync(JSONObject whereJson) {
|
||||
JSONObject resultJson = wmsToErpService.materialSync(whereJson);
|
||||
List<JSONObject> dataList = resultJson.getJSONArray("data").toJavaList(JSONObject.class);
|
||||
// 查询是否有相同物料
|
||||
List<MdMeMaterialbase> likeMaterList = this.list(
|
||||
new QueryWrapper<MdMeMaterialbase>().lambda()
|
||||
.in(MdMeMaterialbase::getMaterial_code, dataList.stream()
|
||||
.map(row -> row.getString("mater_code"))
|
||||
.collect(Collectors.toList())
|
||||
)
|
||||
);
|
||||
// 需插入的物料集合
|
||||
List<MdMeMaterialbase> materDaoList = new ArrayList<>();
|
||||
for (JSONObject json : dataList) {
|
||||
boolean is_like = likeMaterList.stream()
|
||||
.anyMatch(row -> row.getMaterial_code().equals(json.getString("mater_code")));
|
||||
if (is_like) {
|
||||
continue;
|
||||
}
|
||||
// 组织数据
|
||||
MdMeMaterialbase dao = new MdMeMaterialbase();
|
||||
dao.setMaterial_id(IdUtil.getStringId());
|
||||
dao.setMaterial_code(json.getString("mater_code"));
|
||||
dao.setMaterial_name(json.getString("mater_name"));
|
||||
dao.setMaterial_spec(json.getString("spec_dtl"));
|
||||
dao.setNet_weight(json.getBigDecimal("mater_height"));
|
||||
dao.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
dao.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
dao.setCreate_time(DateUtil.now());
|
||||
dao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
dao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
dao.setUpdate_time(DateUtil.now());
|
||||
materDaoList.add(dao);
|
||||
}
|
||||
this.saveBatch(materDaoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MdMeMaterialbase getByCode(String materialCode) {
|
||||
MdMeMaterialbase one = this.getOne(
|
||||
|
||||
@@ -32,17 +32,17 @@ public class ErpToWmsController {
|
||||
@Autowired
|
||||
private ErpToWmsService erpToWmsService;
|
||||
|
||||
@PostMapping("/inventory")
|
||||
@Log("erp查询库存")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> confirm(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(erpToWmsService.erpQueryIvt(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/groupinfo")
|
||||
@Log("下发组盘信息")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> sendGroupplate(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(erpToWmsService.sendGroupplate(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/usematerinfo")
|
||||
@Log("下发用料信息")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> usematerinfo(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(erpToWmsService.usematerinfo(whereJson),HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,14 +8,24 @@ package org.nl.wms.ext_manage.enums;
|
||||
public class EXTConstant {
|
||||
|
||||
/**
|
||||
* 回传ERP接口地址
|
||||
* 入库反馈
|
||||
*/
|
||||
public final static String UPLOAD_ERP_API = "CamstarApi/MomRollBakeInBound";
|
||||
public final static String IN_STOR_INFO = "api/toerp/instorinfo";
|
||||
|
||||
/**
|
||||
* 物料同步ERP接口地址
|
||||
* 出库反馈
|
||||
*/
|
||||
public final static String MATERIAL_SYNC_ERP_API = "CamstarApi/MomRollBakeInBound";
|
||||
public final static String OUT_STOR_INFO = "api/toerp/outstorinfo";
|
||||
|
||||
/**
|
||||
* 出库反馈
|
||||
*/
|
||||
public final static String SUCCESS = "S";
|
||||
|
||||
/**
|
||||
* 出库反馈
|
||||
*/
|
||||
public final static String ERROR = "E";
|
||||
|
||||
/**
|
||||
* ACS下发任务接口地址
|
||||
|
||||
@@ -13,16 +13,6 @@ import org.nl.wms.ext_manage.service.util.ErpResponse;
|
||||
*/
|
||||
public interface ErpToWmsService {
|
||||
|
||||
/**
|
||||
* erp查询库存
|
||||
* @param whereJson {
|
||||
* mater_code: 物料编码(可为空)
|
||||
* stor_code: 仓库编码(可为空)
|
||||
* point_code: 货位编码(可为空)
|
||||
* }
|
||||
* @return ErpResponse
|
||||
*/
|
||||
ErpResponse erpQueryIvt(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 下发组盘单据
|
||||
@@ -30,16 +20,36 @@ public interface ErpToWmsService {
|
||||
* data : [
|
||||
* {
|
||||
* mater_code:物料编码
|
||||
* vehicle_code:托盘号
|
||||
* vehicle_code2:料框号
|
||||
* quantity:数量
|
||||
* mater_name:物料名称
|
||||
* pallet_sn:托盘号
|
||||
* mater_frame:料框号
|
||||
* qty:数量
|
||||
* unit_code:计量单位
|
||||
* ext_code:单据号
|
||||
* ext_type:单据类型
|
||||
* order_code:单据号
|
||||
* order_type:单据类型
|
||||
* }
|
||||
* ]
|
||||
* }
|
||||
* @return ErpResponse
|
||||
*/
|
||||
ErpResponse sendGroupplate(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 下发用料信息
|
||||
* @param whereJson: {
|
||||
* data : [
|
||||
* {
|
||||
* mater_code:物料编码
|
||||
* mater_name:物料名称
|
||||
* out_code:车间编号
|
||||
* qty:数量
|
||||
* unit_code:计量单位
|
||||
* order_code:单据号
|
||||
* order_type:单据类型
|
||||
* }
|
||||
* ]
|
||||
* }
|
||||
* @return ErpResponse
|
||||
*/
|
||||
ErpResponse usematerinfo(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -15,32 +15,37 @@ public interface WmsToErpService {
|
||||
/**
|
||||
* 出入库单据回传
|
||||
* @param whereJson {
|
||||
* data: []
|
||||
* {
|
||||
* "order_code": "3000000056",
|
||||
* "order_type": "03",
|
||||
* "pallet_sn": "zp0000000003",
|
||||
* "instor_time": "2025-07-21 23:23:01",
|
||||
* "qty": "120.00"
|
||||
* }
|
||||
* }
|
||||
* @return JSONObject {
|
||||
* status: 200 / !=200
|
||||
* message: 信息
|
||||
* }
|
||||
*/
|
||||
JSONObject uploadErp(JSONObject whereJson);
|
||||
JSONObject instorinfoToErp(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 物料同步
|
||||
* @param whereJson {
|
||||
* --
|
||||
*
|
||||
* "order_code": "3000000056",
|
||||
* "order_type": "03",
|
||||
* "pallet_sn": "zp0000000003",
|
||||
* "outstor_time": "2025-07-21 23:23:01",
|
||||
* "qty": "120.00",
|
||||
* "out_code": "s0001"
|
||||
*
|
||||
* }
|
||||
* @return JSONObject:{
|
||||
* status:状态码
|
||||
* message:错误信息
|
||||
* data: [
|
||||
* mater_code:物料编码
|
||||
* mater_name:物料名称
|
||||
* type_code:物料类型编码
|
||||
* type_name:物料类型名称
|
||||
* spec_dtl:物料规格
|
||||
* mater_height:物料单重
|
||||
* ]
|
||||
* }
|
||||
*/
|
||||
JSONObject materialSync(JSONObject whereJson);
|
||||
JSONObject outstorinfoToErp(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.service.IRawAssistIStorService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
|
||||
import org.redisson.api.RLock;
|
||||
@@ -55,6 +56,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
|
||||
@Autowired
|
||||
private IRawAssistIStorService iRawAssistIStorService;
|
||||
|
||||
@Resource
|
||||
private PmFormDataMapper pmFormDataMapper;
|
||||
/**
|
||||
@@ -122,7 +126,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
param.put("user_id", "3");
|
||||
param.put("person_name","ACS");
|
||||
try {
|
||||
result = this.applyInTask(param);
|
||||
this.applyInTask(param);
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "申请任务成功!");
|
||||
} catch (Exception e) {
|
||||
log.error("ACS请求LMS出现错误: {}{}", e,e.getMessage());
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
@@ -137,7 +143,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
* @param param
|
||||
* @throws BadRequestException
|
||||
*/
|
||||
public JSONObject applyInTask(JSONObject param) throws BadRequestException {
|
||||
public void applyInTask(JSONObject param) throws BadRequestException {
|
||||
JSONObject result = new JSONObject();
|
||||
log.info("ACS请求apply参数: {}", param);
|
||||
// 申请任务
|
||||
@@ -170,9 +176,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
|
||||
|
||||
//todo 查询组盘数据,生成入库单,自动分配,生成任务
|
||||
//String task_code =taskService.create(task);
|
||||
//result.put("task_code",task_code);
|
||||
return result;
|
||||
iRawAssistIStorService.AutoCreateBill(param);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,14 +12,12 @@ import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService;
|
||||
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
||||
import org.nl.wms.ext_manage.service.ErpToWmsService;
|
||||
import org.nl.wms.ext_manage.service.util.ErpResponse;
|
||||
import org.nl.wms.pm_manage.service.IPmFormDataService;
|
||||
import org.nl.wms.pm_manage.service.dao.PmFormData;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.service.IOutBillService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -64,25 +62,6 @@ public class ErpToWmsServiceImpl implements ErpToWmsService {
|
||||
@Autowired
|
||||
private IMdPbMeasureunitService iMdPbMeasureunitService;
|
||||
|
||||
/**
|
||||
* 载具扩展属性mapper
|
||||
*/
|
||||
@Autowired
|
||||
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
|
||||
|
||||
/**
|
||||
* 出库服务
|
||||
*/
|
||||
@Autowired
|
||||
private IOutBillService iOutBillService;
|
||||
|
||||
@Override
|
||||
public ErpResponse erpQueryIvt(JSONObject whereJson) {
|
||||
log.info("erpQueryIvt查询物料接口输入参数为:-------------------" + whereJson.toString());
|
||||
ErpResponse erpResponse = ErpResponse.requestParamOk(mdPbStoragevehicleextMapper.erpQueryIvt(whereJson));
|
||||
log.info("erpQueryIvt查询物料接口输出参数为:-------------------" + erpResponse.toString());
|
||||
return erpResponse;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErpResponse sendGroupplate(JSONObject whereJson) {
|
||||
@@ -174,4 +153,77 @@ public class ErpToWmsServiceImpl implements ErpToWmsService {
|
||||
log.info("sendGroupplate下发组盘接口输出参数为:-------------------" + ErpResponse.requestOk().toString());
|
||||
return ErpResponse.requestOk();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErpResponse usematerinfo(JSONObject whereJson) {
|
||||
/**
|
||||
* data : [
|
||||
* {
|
||||
* mater_code:物料编码
|
||||
* mater_name:物料名称
|
||||
* out_code:车间编号
|
||||
* qty:数量
|
||||
* unit_code:计量单位
|
||||
* order_code:单据号
|
||||
* order_type:单据类型
|
||||
* }
|
||||
* ]
|
||||
*/
|
||||
log.info("usematerinfo接口输入参数为:-------------------" + whereJson.toString());
|
||||
// 查询仓库
|
||||
BsrealStorattr storDao = iBsrealStorattrService.findByCode("GW");
|
||||
if (storDao == null) {
|
||||
throw new BadRequestException("仓库不存在");
|
||||
}
|
||||
// 组织明细
|
||||
List<JSONObject> dataList = whereJson.getJSONArray("data").toJavaList(JSONObject.class);
|
||||
// 查询所有物料
|
||||
List<MdMeMaterialbase> materDaoList = iMdMeMaterialbaseService.list(
|
||||
new QueryWrapper<MdMeMaterialbase>().lambda()
|
||||
.in(MdMeMaterialbase::getMaterial_code, dataList.stream()
|
||||
.map(row -> row.getString("mater_code"))
|
||||
.collect(Collectors.toList())
|
||||
)
|
||||
);
|
||||
// 查询所有计量单位
|
||||
List<MdPbMeasureunit> unitDaoList = iMdPbMeasureunitService.list(
|
||||
new QueryWrapper<MdPbMeasureunit>().lambda()
|
||||
.in(MdPbMeasureunit::getUnit_code, dataList.stream()
|
||||
.map(row -> row.getString("unit_code"))
|
||||
.collect(Collectors.toList()))
|
||||
);
|
||||
// 明细集合
|
||||
List<PmFormData> dtlArr = new ArrayList<>();
|
||||
for (JSONObject json : dataList) {
|
||||
PmFormData jsonDtl = new PmFormData();
|
||||
MdMeMaterialbase materDao = materDaoList.stream()
|
||||
.filter(row -> row.getMaterial_code().equals(json.getString("mater_code")))
|
||||
.findFirst().orElse(null);
|
||||
jsonDtl.setId(IdUtil.getStringId());
|
||||
jsonDtl.setCode(json.getString("order_code"));
|
||||
jsonDtl.setStatus(IOSEnum.BILL_STATUS.code("生成"));
|
||||
jsonDtl.setStor_id(storDao.getStor_id());
|
||||
jsonDtl.setStor_name(storDao.getStor_name());
|
||||
jsonDtl.setForm_type(json.getString("order_type"));
|
||||
jsonDtl.setSource_form_date(DateUtil.today());
|
||||
jsonDtl.setMaterial_code(json.getString("mater_code"));
|
||||
jsonDtl.setMaterial_id(materDao.getMaterial_id());
|
||||
jsonDtl.setQty(BigDecimal.valueOf(json.getDoubleValue("qty")));
|
||||
jsonDtl.setPlan_qty(BigDecimal.valueOf(json.getDoubleValue("qty")));
|
||||
MdPbMeasureunit unitDao = unitDaoList.stream()
|
||||
.filter(row -> row.getUnit_code().equals(json.getString("unit_code")))
|
||||
.findFirst().orElse(null);
|
||||
jsonDtl.setUnit_id(unitDao.getMeasure_unit_id());
|
||||
jsonDtl.setUnit_name(unitDao.getUnit_name());
|
||||
jsonDtl.setCreate_name("ERP");
|
||||
jsonDtl.setCreate_time(DateUtil.now());
|
||||
jsonDtl.setOut_code(json.getString("out_code"));
|
||||
dtlArr.add(jsonDtl);
|
||||
}
|
||||
//保存单据表
|
||||
iPmFormDataService.saveBatch(dtlArr);
|
||||
|
||||
log.info("usematerinfo输出参数为:-------------------" + ErpResponse.requestOk().toString());
|
||||
return ErpResponse.requestOk();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,39 +9,32 @@ import org.nl.wms.system_manage.enums.SysParamConstant;
|
||||
import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.ext_manage.enums.EXTConstant;
|
||||
import org.nl.wms.ext_manage.service.WmsToErpService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* WMS调用ERP 实现类
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-06-03
|
||||
*/
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class WmsToErpServiceImpl implements WmsToErpService {
|
||||
|
||||
@Override
|
||||
public JSONObject uploadErp(JSONObject whereJson) {
|
||||
log.info("uploadErp回传接口输入参数为:-------------------" + whereJson.toString());
|
||||
public JSONObject instorinfoToErp(JSONObject whereJson) {
|
||||
log.info("instorinfoToErp回传接口输入参数为:-------------------" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ERP_URL).getValue();
|
||||
url = url + EXTConstant.UPLOAD_ERP_API;
|
||||
url = url + EXTConstant.IN_STOR_INFO;
|
||||
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(whereJson))
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("uploadErp回传接口输出参数为:-------------------" + result.toString());
|
||||
log.info("instorinfoToErp回传接口输出参数为:-------------------" + result.toString());
|
||||
|
||||
|
||||
Integer status = result.getInteger("status");
|
||||
if (status != HttpStatus.OK.value()) {
|
||||
|
||||
String status = result.getString("status");
|
||||
if (!EXTConstant.ERROR.equals(status)) {
|
||||
throw new BadRequestException(result.getString("message"));
|
||||
}
|
||||
|
||||
@@ -53,23 +46,24 @@ public class WmsToErpServiceImpl implements WmsToErpService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject materialSync(JSONObject whereJson) {
|
||||
log.info("materialSync物料同步接口输入参数为:-------------------" + whereJson.toString());
|
||||
public JSONObject outstorinfoToErp(JSONObject whereJson) {
|
||||
log.info("outstorinfoToErp回传接口输入参数为:-------------------" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ERP_URL).getValue();
|
||||
url = url + EXTConstant.MATERIAL_SYNC_ERP_API;
|
||||
url = url + EXTConstant.OUT_STOR_INFO;
|
||||
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(whereJson))
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("materialSync物料同步输出参数为:-------------------" + result.toString());
|
||||
log.info("outstorinfoToErp回传接口输出参数为:-------------------" + result.toString());
|
||||
|
||||
|
||||
Integer status = result.getInteger("status");
|
||||
if (status != HttpStatus.OK.value()) {
|
||||
|
||||
String status = result.getString("status");
|
||||
if (!EXTConstant.ERROR.equals(status)) {
|
||||
throw new BadRequestException(result.getString("message"));
|
||||
}
|
||||
|
||||
@@ -77,5 +71,6 @@ public class WmsToErpServiceImpl implements WmsToErpService {
|
||||
throw new BadRequestException("ERP提示错误:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public class ErpResponse {
|
||||
/**
|
||||
* 状态码
|
||||
*/
|
||||
private Integer status;
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 信息
|
||||
@@ -40,7 +40,7 @@ public class ErpResponse {
|
||||
*/
|
||||
public static ErpResponse requestOk() {
|
||||
return ErpResponse.builder()
|
||||
.status(HttpStatus.HTTP_OK)
|
||||
.status("S")
|
||||
.message("请求成功!")
|
||||
.build();
|
||||
}
|
||||
@@ -51,7 +51,7 @@ public class ErpResponse {
|
||||
*/
|
||||
public static ErpResponse requestParamOk(List<JSONObject> list) {
|
||||
return ErpResponse.builder()
|
||||
.status(HttpStatus.HTTP_OK)
|
||||
.status("S")
|
||||
.message("请求成功!")
|
||||
.data(list)
|
||||
.build();
|
||||
@@ -63,7 +63,7 @@ public class ErpResponse {
|
||||
*/
|
||||
public static ErpResponse requestError(String message) {
|
||||
return ErpResponse.builder()
|
||||
.status(HttpStatus.HTTP_BAD_REQUEST)
|
||||
.status("E")
|
||||
.message(message)
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package org.nl.wms.pda_manage.ios_manage.controller;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.logging.annotation.Log;
|
||||
import org.nl.wms.pda_manage.ios_manage.service.PdaMoveStorService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
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 static org.nl.common.utils.ValidationUtil.assertNotBlankJson;
|
||||
|
||||
/**
|
||||
* 手持入库管理
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-06-06
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api/pda/movestor")
|
||||
@Slf4j
|
||||
@SaIgnore
|
||||
public class PdaMoveStorController {
|
||||
|
||||
@Autowired
|
||||
private PdaMoveStorService pdaMoveStorService;
|
||||
|
||||
|
||||
@PostMapping("/move")
|
||||
@Log("移库确认")
|
||||
public ResponseEntity<Object> move(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(pdaMoveStorService.move(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* 组盘入库获取物料明细
|
||||
*/
|
||||
@PostMapping("/querydtl")
|
||||
@Log("组盘入库获取物料明细")
|
||||
public ResponseEntity<Object> querydtl(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(pdaMoveStorService.querydtl(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package org.nl.wms.pda_manage.ios_manage.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.pda_manage.util.PdaResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 手持IOS 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-06-05
|
||||
*/
|
||||
public interface PdaMoveStorService {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 组盘确认
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse move(JSONObject whereJson);
|
||||
|
||||
|
||||
/**
|
||||
* 查询组盘物料明细
|
||||
*
|
||||
* @return PdaResponse
|
||||
*/
|
||||
List<JSONObject> querydtl(JSONObject whereJson);
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package org.nl.wms.pda_manage.ios_manage.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.pda_manage.ios_manage.service.PdaMoveStorService;
|
||||
import org.nl.wms.pda_manage.util.PdaResponse;
|
||||
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
|
||||
import org.nl.wms.warehouse_manage.service.dao.mapper.StIvtMoveinvdtlMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
@Service
|
||||
public class PdaMoveStorServiceImpl implements PdaMoveStorService {
|
||||
|
||||
@Resource
|
||||
private StIvtMoveinvdtlMapper stIvtMoveinvdtlMapper;
|
||||
|
||||
@Override
|
||||
public PdaResponse move(JSONObject whereJson) {
|
||||
// 移出货位编码
|
||||
String struct_code = whereJson.getString("struct_code");
|
||||
// 载具号
|
||||
String vehicle_code = whereJson.getString("vehicle_code");
|
||||
// 移入货位
|
||||
String move_struct_code = whereJson.getString("move_struct_code");
|
||||
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> querydtl(JSONObject whereJson) {
|
||||
return stIvtMoveinvdtlMapper.querydtl(whereJson);
|
||||
}
|
||||
}
|
||||
@@ -170,6 +170,8 @@ public class PmFormData implements Serializable {
|
||||
|
||||
private String new_merge_flag;
|
||||
|
||||
private String out_code;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -149,6 +149,8 @@ public class PmFormDataDto implements Serializable {
|
||||
|
||||
private String new_merge_flag;
|
||||
|
||||
private String out_code;
|
||||
|
||||
/**
|
||||
* 关联上级表单id
|
||||
*/
|
||||
|
||||
@@ -57,4 +57,9 @@ public interface IRawAssistIStorService extends IService<IOStorInv> {
|
||||
List<IOStorInvDisDto> getInBillTaskDtl(Map whereJson);
|
||||
|
||||
Structattr getStructattr(JSONObject param);
|
||||
|
||||
/**
|
||||
* 扫码入库自动生成入库单
|
||||
*/
|
||||
void AutoCreateBill(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ public interface IOStorInvMapper extends BaseMapper<IOStorInv> {
|
||||
|
||||
IPage<GroupPlateDto> getGroupPlate (IPage<GroupPlateDto> page, @Param("params") Map whereJson);
|
||||
|
||||
List<GroupPlateDto> getGroupByPlate (@Param("params") Map whereJson);
|
||||
|
||||
List<IOStorInvDtlDto> getIODtl (@Param("params") Map whereJson);
|
||||
|
||||
IPage<IOStorInv> queryOutBillPage (IPage<IOStorInv> page,@Param("params") Map whereJson);
|
||||
|
||||
@@ -48,20 +48,23 @@
|
||||
</select>
|
||||
|
||||
<select id="getGroupPlate" resultType="org.nl.wms.warehouse_manage.service.dto.GroupPlateDto">
|
||||
SELECT group_id,
|
||||
storagevehicle_code,
|
||||
gp.material_id,pcsn,
|
||||
qty_unit_id,
|
||||
qty_unit_name,qty,
|
||||
frozen_qty,remark,
|
||||
status,ext_code,
|
||||
ext_type,
|
||||
mater.material_name,
|
||||
mater.material_spec,
|
||||
mater.material_code,
|
||||
SELECT
|
||||
gp.group_id,
|
||||
gp.storagevehicle_code,
|
||||
gp.material_id,
|
||||
gp.qty_unit_id,
|
||||
gp.qty_unit_name,
|
||||
gp.qty,
|
||||
gp.frozen_qty,
|
||||
gp.remark,
|
||||
gp.STATUS,
|
||||
mater.material_name,
|
||||
mater.material_spec,
|
||||
mater.material_code,
|
||||
gp.ext_code,
|
||||
gp.ext_type
|
||||
FROM md_pb_groupplate gp
|
||||
FROM
|
||||
md_pb_groupplate gp
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = gp.material_id
|
||||
<where>
|
||||
gp.status = '01' and frozen_qty = 0
|
||||
@@ -88,6 +91,34 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getGroupByPlate" resultType="org.nl.wms.warehouse_manage.service.dto.GroupPlateDto">
|
||||
SELECT
|
||||
gp.group_id,
|
||||
gp.storagevehicle_code,
|
||||
gp.material_id,
|
||||
gp.qty_unit_id,
|
||||
gp.qty_unit_name,
|
||||
gp.qty,
|
||||
gp.frozen_qty,
|
||||
gp.remark,
|
||||
gp.STATUS,
|
||||
mater.material_name,
|
||||
mater.material_spec,
|
||||
mater.material_code,
|
||||
gp.ext_code,
|
||||
gp.ext_type
|
||||
FROM
|
||||
md_pb_groupplate gp
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = gp.material_id
|
||||
<where>
|
||||
gp.status = '01' and frozen_qty = 0
|
||||
<if test="params.vehicle_code != null">
|
||||
AND
|
||||
gp.storagevehicle_code = #{params.vehicle_code}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getIODtl" resultType="org.nl.wms.warehouse_manage.service.dto.IOStorInvDtlDto">
|
||||
SELECT DISTINCT
|
||||
dtl.*,
|
||||
|
||||
@@ -26,4 +26,13 @@ public interface StIvtMoveinvdtlMapper extends BaseMapper<StIvtMoveinvdtl> {
|
||||
* @return List<JSONObject>
|
||||
*/
|
||||
List<JSONObject> getMoveDtl(@Param("param") Map whereJson);
|
||||
|
||||
/**
|
||||
* 查询移库单明细
|
||||
* @param whereJson {
|
||||
* moveinv_id 移库单标识
|
||||
* }
|
||||
* @return List<JSONObject>
|
||||
*/
|
||||
List<JSONObject> querydtl(@Param("param") Map whereJson);
|
||||
}
|
||||
|
||||
@@ -35,4 +35,28 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="querydtl" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
plate.group_id,
|
||||
plate.qty_unit_name AS unit_code,
|
||||
plate.qty,
|
||||
plate.frozen_qty,
|
||||
mater.material_code,
|
||||
mater.material_name
|
||||
FROM
|
||||
md_pb_groupplate plate
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = plate.material_id
|
||||
LEFT JOIN st_ivt_structattr struct ON struct.storagevehicle_code = plate.storagevehicle_code
|
||||
WHERE
|
||||
1 =1
|
||||
<if test="param.struct_code != null and param.struct_code != ''">
|
||||
AND
|
||||
struct.struct_code = #{param.struct_code}
|
||||
</if>
|
||||
<if test="param.vehicle_code != null and param.vehicle_code != ''">
|
||||
AND
|
||||
plate.storagevehicle_code = #{param.vehicle_code}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -748,4 +748,36 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
String iostorinvdtl_id = (String) whereJson.get("iostorinvdtl_id");
|
||||
return ioStorInvDisMapper.getBillTaskDtl(iostorinvdtl_id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void AutoCreateBill(JSONObject param){
|
||||
String device_code = param.getString("device_code"); // 请求点
|
||||
String vehicle_code = param.getString("vehicle_code");//子托盘
|
||||
List<GroupPlateDto> list = ioStorInvMapper.getGroupByPlate(param);
|
||||
|
||||
JSONObject form = new JSONObject();
|
||||
// 查询仓库
|
||||
BsrealStorattr storDao = iBsrealStorattrService.findByCode("GW");
|
||||
form.put("stor_id",storDao.getStor_id());
|
||||
form.put("bill_type",IOSEnum.BILL_TYPE.code("生产入库"));
|
||||
form.put("biz_date",DateUtil.now());
|
||||
|
||||
form.put("remark","");
|
||||
form.put("bill_status",IOSEnum.BILL_STATUS.code("生成"));
|
||||
form.put("tableData",list);
|
||||
//新增入库单
|
||||
String iostorinv_id = this.insertDtl(form);
|
||||
//根据分配明细分配仓位
|
||||
IOStorInvDis dis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getIostorinv_id,iostorinv_id));
|
||||
JSONObject dis_form = new JSONObject();
|
||||
dis_form.put("tableMater",dis);
|
||||
dis_form.put("stor_code",storDao.getStor_code());
|
||||
dis_form.put("sect_code","");
|
||||
//分配货位
|
||||
this.divStruct(dis_form);
|
||||
dis_form.put("point_code",device_code);
|
||||
//生成任务
|
||||
this.divPoint(dis_form);;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ public class RetrunServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
}
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
jsonParam.put("data", paramList);
|
||||
wmsToErpService.uploadErp(jsonParam);
|
||||
wmsToErpService.instorinfoToErp(jsonParam);
|
||||
|
||||
// 更新主表
|
||||
this.update(
|
||||
|
||||
Reference in New Issue
Block a user