opt:优化

This commit is contained in:
DESKTOP-5DIJMF9\admin
2025-07-28 08:47:42 +08:00
parent b1d5976bcd
commit 92c00a502d
25 changed files with 415 additions and 180 deletions

View File

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

View File

@@ -44,14 +44,6 @@ public interface IMdMeMaterialbaseService extends IService<MdMeMaterialbase> {
*/
void delete(Set<String> ids);
/**
* 物料同步
* @param whereJson {
* --
* }
*/
void materialSync(JSONObject whereJson);
/**
* 根据编码获取物料
* @param material_code 物料编码

View File

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

View File

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

View File

@@ -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下发任务接口地址

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -170,6 +170,8 @@ public class PmFormData implements Serializable {
private String new_merge_flag;
private String out_code;
}

View File

@@ -149,6 +149,8 @@ public class PmFormDataDto implements Serializable {
private String new_merge_flag;
private String out_code;
/**
* 关联上级表单id
*/

View File

@@ -57,4 +57,9 @@ public interface IRawAssistIStorService extends IService<IOStorInv> {
List<IOStorInvDisDto> getInBillTaskDtl(Map whereJson);
Structattr getStructattr(JSONObject param);
/**
* 扫码入库自动生成入库单
*/
void AutoCreateBill(JSONObject param);
}

View File

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

View File

@@ -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.*,

View File

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

View File

@@ -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>

View File

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

View File

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