add:外部接口
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.basedata_manage.controller;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.base.TableDataInfo;
|
||||
@@ -61,4 +62,12 @@ 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.basedata_manage.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
@@ -42,4 +43,12 @@ public interface IMdMeMaterialbaseService extends IService<MdMeMaterialbase> {
|
||||
* @param ids 物料标识集合
|
||||
*/
|
||||
void delete(Set<String> ids);
|
||||
|
||||
/**
|
||||
* 物料同步
|
||||
* @param whereJson {
|
||||
* --
|
||||
* }
|
||||
*/
|
||||
void materialSync(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -34,4 +35,15 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper<MdPbStoragevehic
|
||||
* @return IPage<StIvtMoveinv>
|
||||
*/
|
||||
IPage<JSONObject> queryAllByPage(Page<JSONObject> page, @Param("param") Map whereJson);
|
||||
|
||||
/**
|
||||
* erp查询库存
|
||||
* @param whereJson {
|
||||
* mater_code: 物料编码
|
||||
* stor_code: 仓库编码
|
||||
* point_code: 货位编码
|
||||
* }
|
||||
* @return List<JSONObject>
|
||||
*/
|
||||
List<JSONObject> erpQueryIvt(@Param("param") JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -57,7 +57,6 @@
|
||||
ORDER BY ext.insert_time Desc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="queryAllByPage" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
ext.storagevehicleext_id,
|
||||
@@ -110,5 +109,46 @@
|
||||
ORDER BY ext.insert_time Desc
|
||||
</select>
|
||||
|
||||
<select id="erpQueryIvt" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
attr.stor_code AS stor_code,
|
||||
attr.stor_name AS stor_name,
|
||||
attr.struct_code AS point_code,
|
||||
attr.struct_name AS point_name,
|
||||
ext.storagevehicle_code AS pallet_code,
|
||||
mater.material_code AS mater_code,
|
||||
mater.material_name AS mater_name,
|
||||
ext.pcsn AS batch_no,
|
||||
ext.canuse_qty AS quantity,
|
||||
unit.unit_code AS unit_code,
|
||||
unit.unit_name AS unit_name,
|
||||
ext.insert_time AS in_time
|
||||
FROM
|
||||
md_pb_storagevehicleext ext
|
||||
LEFT JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = ext.material_id
|
||||
LEFT JOIN md_pb_measureunit unit ON ext.qty_unit_id = unit.measure_unit_id
|
||||
<where>
|
||||
attr.lock_type = '0'
|
||||
AND attr.is_used = "1"
|
||||
AND ext.canuse_qty > 0
|
||||
<if test="param.mater_code != null and param.mater_code != ''">
|
||||
AND
|
||||
mater.material_code = #{param.mater_code}
|
||||
</if>
|
||||
|
||||
<if test="param.stor_code != null and param.stor_code != ''">
|
||||
AND
|
||||
attr.stor_code = #{param.stor_code}
|
||||
</if>
|
||||
|
||||
<if test="param.point_code != null and param.point_code != ''">
|
||||
AND
|
||||
attr.struct_code = #{param.point_code}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
ORDER BY ext.insert_time Desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.basedata_manage.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@@ -15,11 +16,16 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper;
|
||||
import org.nl.wms.ext.service.WmsToErpService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -32,6 +38,12 @@ import java.util.Set;
|
||||
@Service
|
||||
public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMapper, MdMeMaterialbase> implements IMdMeMaterialbaseService {
|
||||
|
||||
/**
|
||||
* wms调用erp服务
|
||||
*/
|
||||
@Autowired
|
||||
private WmsToErpService wmsToErpService;
|
||||
|
||||
@Override
|
||||
public IPage<MdMeMaterialbase> queryAll(Map whereJson, PageQuery page) {
|
||||
// 查询条件
|
||||
@@ -92,4 +104,43 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
|
||||
public void delete(Set<String> ids) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package org.nl.wms.ext.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.ext.service.ErpToWmsService;
|
||||
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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* ERP调用WMS 控制层
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-06-04
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api/lms")
|
||||
@Slf4j
|
||||
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("/task")
|
||||
@Log("下发出库单据")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> sendTask(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(erpToWmsService.sendTask(whereJson),HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.nl.wms.ext.enuums;
|
||||
|
||||
/**
|
||||
* @author Liuyx
|
||||
* @date 2025年06月03日
|
||||
* @desc 外部系统常量
|
||||
*/
|
||||
public class EXTConstant {
|
||||
|
||||
/**
|
||||
* 回传ERP接口地址
|
||||
*/
|
||||
public final static String UPLOAD_ERP_API = "CamstarApi/MomRollBakeInBound";
|
||||
|
||||
/**
|
||||
* 物料同步ERP接口地址
|
||||
*/
|
||||
public final static String MATERIAL_SYNC_ERP_API = "CamstarApi/MomRollBakeInBound";
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package org.nl.wms.ext.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.ext.service.util.ErpResponse;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* ERP调用WMS 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-06-04
|
||||
*/
|
||||
public interface ErpToWmsService {
|
||||
|
||||
/**
|
||||
* erp查询库存
|
||||
* @param whereJson {
|
||||
* mater_code: 物料编码(可为空)
|
||||
* stor_code: 仓库编码(可为空)
|
||||
* point_code: 货位编码(可为空)
|
||||
* }
|
||||
* @return ErpResponse
|
||||
*/
|
||||
ErpResponse erpQueryIvt(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 下发出库单据
|
||||
* @param whereJson: {
|
||||
* stor_code:仓库编码
|
||||
* mater_code:物料编码
|
||||
* batch_no:批次号(可为空)
|
||||
* quantity:数量
|
||||
* unit_code:计量单位
|
||||
* unit_name:计量单位名称
|
||||
* inv_code:单据号(可为空)
|
||||
* task_type :业务类型(可为空)
|
||||
* }
|
||||
* @return ErpResponse
|
||||
*/
|
||||
ErpResponse sendTask(JSONObject whereJson);
|
||||
}
|
||||
@@ -23,4 +23,24 @@ public interface WmsToErpService {
|
||||
* }
|
||||
*/
|
||||
JSONObject uploadErp(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 物料同步
|
||||
* @param whereJson {
|
||||
* --
|
||||
* }
|
||||
* @return JSONObject:{
|
||||
* status:状态码
|
||||
* message:错误信息
|
||||
* data: [
|
||||
* mater_code:物料编码
|
||||
* mater_name:物料名称
|
||||
* type_code:物料类型编码
|
||||
* type_name:物料类型名称
|
||||
* spec_dtl:物料规格
|
||||
* mater_height:物料单重
|
||||
* ]
|
||||
* }
|
||||
*/
|
||||
JSONObject materialSync(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package org.nl.wms.ext.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
||||
import org.nl.wms.ext.service.ErpToWmsService;
|
||||
import org.nl.wms.ext.service.util.ErpResponse;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* ERP调用WMS 实现类
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-06-04
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ErpToWmsServiceImpl implements ErpToWmsService {
|
||||
|
||||
/**
|
||||
* 载具扩展属性mapper
|
||||
*/
|
||||
@Autowired
|
||||
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
|
||||
|
||||
@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 sendTask(JSONObject whereJson) {
|
||||
log.info("sendTask下发出库任务接口输入参数为:-------------------" + whereJson.toString());
|
||||
|
||||
|
||||
log.info("sendTask下发出库任务接口输出参数为:-------------------" + ErpResponse.requestOk().toString());
|
||||
return ErpResponse.requestOk();
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
package org.nl.wms.ext.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.ext.enuums.EXTConstant;
|
||||
import org.nl.wms.ext.service.WmsToErpService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -25,19 +25,18 @@ public class WmsToErpServiceImpl implements WmsToErpService {
|
||||
|
||||
@Override
|
||||
public JSONObject uploadErp(JSONObject whereJson) {
|
||||
log.info("uploadErp接口输入参数为:-------------------" + whereJson.toString());
|
||||
log.info("uploadErp回传接口输入参数为:-------------------" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ERP_URL").getValue();
|
||||
String api = "CamstarApi/MomRollBakeInBound";
|
||||
url = url + api;
|
||||
url = url + EXTConstant.UPLOAD_ERP_API;
|
||||
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(whereJson))
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("uploadErp接口输出参数为:-------------------" + result.toString());
|
||||
log.info("uploadErp回传接口输出参数为:-------------------" + result.toString());
|
||||
|
||||
|
||||
Integer status = result.getInteger("status");
|
||||
@@ -51,4 +50,31 @@ public class WmsToErpServiceImpl implements WmsToErpService {
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject materialSync(JSONObject whereJson) {
|
||||
log.info("materialSync物料同步接口输入参数为:-------------------" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ERP_URL").getValue();
|
||||
url = url + EXTConstant.MATERIAL_SYNC_ERP_API;
|
||||
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(whereJson))
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("materialSync物料同步输出参数为:-------------------" + result.toString());
|
||||
|
||||
|
||||
Integer status = result.getInteger("status");
|
||||
if (status != HttpStatus.OK.value()) {
|
||||
throw new BadRequestException(result.getString("message"));
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new BadRequestException("ERP提示错误:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
package org.nl.wms.ext.service.util;
|
||||
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* ERP调用WMS 返回结果
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2025-06-04
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
public class ErpResponse {
|
||||
|
||||
/**
|
||||
* 状态码
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 信息
|
||||
*/
|
||||
private String message;
|
||||
|
||||
/**
|
||||
* 返回数据
|
||||
*/
|
||||
private List<JSONObject> data;
|
||||
|
||||
/**
|
||||
* 不带数据反馈
|
||||
* @return ErpResponse
|
||||
*/
|
||||
public static ErpResponse requestOk() {
|
||||
return ErpResponse.builder()
|
||||
.status(HttpStatus.HTTP_OK)
|
||||
.message("请求成功!")
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 带数据反馈
|
||||
* @return ErpResponse
|
||||
*/
|
||||
public static ErpResponse requestParamOk(List<JSONObject> list) {
|
||||
return ErpResponse.builder()
|
||||
.status(HttpStatus.HTTP_OK)
|
||||
.message("请求成功!")
|
||||
.data(list)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 报错信息反馈
|
||||
* @return ErpResponse
|
||||
*/
|
||||
public static ErpResponse requestError(String message) {
|
||||
return ErpResponse.builder()
|
||||
.status(HttpStatus.HTTP_BAD_REQUEST)
|
||||
.message(message)
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ public interface IStIvtCheckmstService extends IService<StIvtCheckmst> {
|
||||
List<JSONObject> getDtl(Map whereJson);
|
||||
|
||||
/**
|
||||
* 到村盘点单
|
||||
* 保存盘点单
|
||||
* @param dto 新增修改dto实体类
|
||||
*/
|
||||
void saveCheck(CheckInsertDto dto);
|
||||
|
||||
@@ -133,7 +133,7 @@ public class RetrunServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
MdMeMaterialbase materDao = materList.stream()
|
||||
.filter(row -> row.getMaterial_id().equals(disDao.getMaterial_id()))
|
||||
.findFirst().orElse(null);
|
||||
param.put("mater_code", materDao.getExt_id());
|
||||
param.put("mater_code", materDao.getMaterial_code());
|
||||
// 批次
|
||||
param.put("batch_no", disDao.getPcsn());
|
||||
// 数量
|
||||
@@ -142,7 +142,7 @@ public class RetrunServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
MdPbMeasureunit unitDao = unitList.stream()
|
||||
.filter(row -> row.getMeasure_unit_id().equals(disDao.getQty_unit_id()))
|
||||
.findFirst().orElse(null);
|
||||
param.put("unit_code", unitDao.getExt_id());
|
||||
param.put("unit_code", unitDao.getUnit_code());
|
||||
// 仓库编码
|
||||
JSONObject jsonMst = rows.stream()
|
||||
.filter(row -> row.getString("iostorinv_id").equals(disDao.getIostorinv_id()))
|
||||
@@ -153,9 +153,9 @@ public class RetrunServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
// 载具编码
|
||||
param.put("pallet_code", disDao.getStoragevehicle_code());
|
||||
// 单据号
|
||||
param.put("inv_code", jsonMst.getString("bill_code"));
|
||||
param.put("inv_code", jsonMst.getString("source_id"));
|
||||
// 业务类型
|
||||
param.put("task_type", jsonMst.getString("bill_type"));
|
||||
param.put("task_type", jsonMst.getString("source_type"));
|
||||
paramList.add(param);
|
||||
}
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.warehouse_management.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
@@ -52,6 +53,9 @@ public class StIvtCheckdtlServiceImpl extends ServiceImpl<StIvtCheckdtlMapper, S
|
||||
List<StIvtCheckdtl> dtlDaoList = new ArrayList<>();
|
||||
for (int i = 0; i < dto.getTableData().size(); i++) {
|
||||
JSONObject json = dto.getTableData().get(i);
|
||||
if (json.getString("status").equals(IOSEnum.CHECK_DTL_STATUS.code("完成"))) {
|
||||
continue;
|
||||
}
|
||||
StIvtCheckdtl dao = new StIvtCheckdtl();
|
||||
dao.setCheckdtl_id(IdUtil.getStringId());
|
||||
dao.setCheck_id(dto.getCheck_id());
|
||||
|
||||
@@ -104,7 +104,7 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl<StIvtCheckmstMapper, S
|
||||
// 删除老明细
|
||||
iStIvtCheckdtlService.remove(
|
||||
new QueryWrapper<StIvtCheckdtl>().lambda()
|
||||
.eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id())
|
||||
.eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id())
|
||||
);
|
||||
// 新增明细
|
||||
iStIvtCheckdtlService.createCheckDtl(dto);
|
||||
@@ -114,7 +114,7 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl<StIvtCheckmstMapper, S
|
||||
public void delete(Set<String> ids) {
|
||||
this.update(
|
||||
new UpdateWrapper<StIvtCheckmst>().lambda()
|
||||
.in(StIvtCheckmst::getCheck_id,ids)
|
||||
.in(StIvtCheckmst::getCheck_id, ids)
|
||||
.set(StIvtCheckmst::getIs_delete, IOSConstant.IS_DELETE_YES)
|
||||
);
|
||||
}
|
||||
@@ -134,12 +134,14 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl<StIvtCheckmstMapper, S
|
||||
iStIvtCheckdtlService.remove(
|
||||
new QueryWrapper<StIvtCheckdtl>().lambda()
|
||||
.eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id())
|
||||
.ne(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成"))
|
||||
);
|
||||
iStIvtCheckdtlService.createCheckDtl(dto);
|
||||
iStIvtCheckdtlService.update(
|
||||
new UpdateWrapper<StIvtCheckdtl>().lambda()
|
||||
.eq(StIvtCheckdtl::getCheck_id, dto.getCheck_id())
|
||||
.set(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("盘点中"))
|
||||
.eq(StIvtCheckdtl::getCheck_id, dto.getCheck_id())
|
||||
.ne(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成"))
|
||||
.set(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("盘点中"))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -153,16 +155,37 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl<StIvtCheckmstMapper, S
|
||||
mstDao.setConfirm_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setConfirm_time(DateUtil.now());
|
||||
this.updateById(mstDao);
|
||||
// 创建损益单
|
||||
iStIvtCheckdtlService.createMore(iStIvtCheckdtlService.list(
|
||||
new QueryWrapper<StIvtCheckdtl>().lambda()
|
||||
.eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id())
|
||||
.ne(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成"))
|
||||
), mstDao.getCheck_id());
|
||||
// 更新明细
|
||||
iStIvtCheckdtlService.update(
|
||||
new UpdateWrapper<StIvtCheckdtl>().lambda()
|
||||
.eq(StIvtCheckdtl::getCheck_id, dto.getCheck_id())
|
||||
.set(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成"))
|
||||
);
|
||||
// 创建损益单
|
||||
iStIvtCheckdtlService.createMore(iStIvtCheckdtlService.list(
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新主表状态
|
||||
* @param check_id 主表标识
|
||||
*/
|
||||
private void updateMst(String check_id) {
|
||||
StIvtCheckmst mstDao = this.getById(check_id);
|
||||
List<StIvtCheckdtl> dtlDaoList = iStIvtCheckdtlService.list(
|
||||
new QueryWrapper<StIvtCheckdtl>().lambda()
|
||||
.eq(StIvtCheckdtl::getCheck_id,mstDao.getCheck_id())
|
||||
),mstDao.getCheck_id());
|
||||
.eq(StIvtCheckdtl::getCheck_id, check_id)
|
||||
);
|
||||
boolean is_confirm = dtlDaoList.stream()
|
||||
.allMatch(row -> row.getStatus().equals(IOSEnum.CHECK_DTL_STATUS.code("完成")));
|
||||
|
||||
mstDao.setStatus(is_confirm ? IOSEnum.CHECK_MST_STATUS.code("完成") : IOSEnum.CHECK_MST_STATUS.code("盘点中"));
|
||||
mstDao.setConfirm_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setConfirm_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setConfirm_time(DateUtil.now());
|
||||
this.updateById(mstDao);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE_ERPTOWMS" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/ErpToWms/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.wms.ext.service.impl.ErpToWmsServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="FILE_ERPTOWMS"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -16,6 +16,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!--引入默认的一些设置-->
|
||||
<include resource="log/WmsToErp.xml"/>
|
||||
<include resource="log/ErpToWms.xml"/>
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!--withJansi 参数改为true-->
|
||||
|
||||
Reference in New Issue
Block a user