This commit is contained in:
zhouz
2023-06-26 16:07:34 +08:00
78 changed files with 1827 additions and 252 deletions

View File

@@ -58,11 +58,11 @@
</dependency>
<!-- 日志链路追踪 https://tlog.yomahub.com/pages/f62a84/#%E5%90%8C%E6%AD%A5%E6%97%A5%E5%BF%97-->
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-all-spring-boot-starter</artifactId>
<version>1.5.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.yomahub</groupId>-->
<!-- <artifactId>tlog-all-spring-boot-starter</artifactId>-->
<!-- <version>1.5.0</version>-->
<!-- </dependency>-->
<!-- 获取系统信息 -->
<dependency>

View File

@@ -143,34 +143,24 @@ public class StringUtils {
* 获取ip地址
*/
public static String getIp(HttpServletRequest request) {
// TODO 不解析IP地址
if(true){
return "127.0.0.1";
}
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
String comma = ",";
String localhost = "127.0.0.1";
if (ip.contains(comma)) {
ip = ip.split(",")[0];
}
if (localhost.equals(ip)) {
// 获取本机真正的ip地址
try {
ip = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
log.error(e.getMessage(), e);
}
if (ip != null && ip.contains(",")) {
String[] ipArray = ip.split(",");
ip = ipArray[0];
}
return ip;
}

View File

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.json.XML;
@@ -14,6 +15,15 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.common.utils.WebServiceUtil;
import org.nl.wms.ext.sap.service.WmsToSapService;
import org.nl.wms.masterdata_manage.master.service.customer.IMdCsCustomerbaseService;
import org.nl.wms.masterdata_manage.master.service.customer.dao.MdCsCustomerbase;
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService;
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
@@ -25,6 +35,15 @@ import java.util.HashMap;
@Slf4j
public class WmsToSapServiceImpl implements WmsToSapService {
@Autowired
private IMdPbMeasureunitService mdPbMeasureunitService;
@Autowired
private IMdMeMaterialbaseService materialbaseService;
@Autowired
private IMdCsCustomerbaseService customerbaseService;
@Autowired
private IMpsSaleOrderService saleOrderService;
@Override
public JSONObject getMater(JSONObject form) {
return null;
@@ -119,38 +138,39 @@ public class WmsToSapServiceImpl implements WmsToSapService {
sale_jo.put("sale_type", row.getString("Auart"));
String material_code = row.getString("Matnr").replaceAll("^(0+)", "");
//获取物料对应的物料标识
JSONObject mater_jo = WQLObject.getWQLObject("MD_ME_MaterialBase").query("material_code = '" + material_code + "'").uniqueResult(0);
MdMeMaterialbase mater_jo = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", material_code));
if (ObjectUtil.isEmpty(mater_jo)) {
sale_jo.put("material_id", "0");
sale_jo.put("is_success", "0");
sale_jo.put("remark", "未查询到该销售订单对应的物料主数据:" + material_code);
err_num++;
} else {
String material_id = mater_jo.getString("material_id");
String material_id =mater_jo.getMaterial_id();
sale_jo.put("material_id", material_id);
}
sale_jo.put("status", "10");
sale_jo.put("sale_qty", row.getString("Kwmeng"));
sale_jo.put("produce_seq", "1");
String cust_code = row.getString("Kunnr");
JSONObject cust_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + cust_code + "'").uniqueResult(0);
MdCsCustomerbase cust_jo = customerbaseService.getOne(new QueryWrapper<MdCsCustomerbase>().eq("cust_code", cust_code));
if (ObjectUtil.isNotEmpty(cust_jo)) {
sale_jo.put("cust_id", cust_jo.getString("cust_id"));
sale_jo.put("cust_code", cust_jo.getString("cust_code"));
sale_jo.put("cust_name", cust_jo.getString("cust_name"));
sale_jo.put("cust_id", cust_jo.getCust_id());
sale_jo.put("cust_code", cust_jo.getCust_code());
sale_jo.put("cust_name", cust_jo.getCust_name());
} else {
sale_jo.put("is_success", "0");
sale_jo.put("remark", "未查询到该销售订单对应的客户信息:" + cust_code);
err_num++;
}
String unit_code = row.getString("Vrkme");
JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0);
MdPbMeasureunit unit_jo = mdPbMeasureunitService.getOne(new QueryWrapper<MdPbMeasureunit>()
.eq("unit_name", unit_code));
if (ObjectUtil.isEmpty(unit_jo)) {
sale_jo.put("qty_unit_id", "0");
sale_jo.put("remark", "未查询到该销售订单对应的单位信息:" + unit_code);
err_num++;
} else {
sale_jo.put("qty_unit_id", unit_jo.getString("measure_unit_id"));
sale_jo.put("qty_unit_id", unit_jo.getMeasure_unit_id());
}
sale_jo.put("plandeliver_date", row.getString("Edatu"));
sale_jo.put("create_id", SecurityUtils.getCurrentUserId());

View File

@@ -0,0 +1,21 @@
package org.nl.wms.masterdata_manage.master.controller.customer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 客户基本信息表 前端控制器
* </p>
*
* @author generator
* @since 2023-06-25
*/
@RestController
@RequestMapping("/mdCsCustomerbase")
public class MdCsCustomerbaseController {
}

View File

@@ -127,7 +127,8 @@ public class MdPbClassstandardServiceImpl extends ServiceImpl<MdPbClassstandardM
query.eq("parent_class_id",whereJson.get("parent_class_id"));
}
if (ObjectUtil.isNotEmpty(whereJson.get("class_idStr"))) {
query.last("and class_id in "+whereJson.get("class_idStr"));
query.in("class_id",whereJson.get("class_idStr"));
// query.last("and class_id in "+whereJson.get("class_idStr"));
}
List<Map<String, Object>> list = this.listMaps(query);
return getMaps(list);

View File

@@ -0,0 +1,16 @@
package org.nl.wms.masterdata_manage.master.service.customer;
import org.nl.wms.masterdata_manage.master.service.customer.dao.MdCsCustomerbase;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 客户基本信息表 服务类
* </p>
*
* @author generator
* @since 2023-06-25
*/
public interface IMdCsCustomerbaseService extends IService<MdCsCustomerbase> {
}

View File

@@ -0,0 +1,144 @@
package org.nl.wms.masterdata_manage.master.service.customer.dao;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 客户基本信息表
* </p>
*
* @author generator
* @since 2023-06-25
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_cs_customerbase")
public class MdCsCustomerbase implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 客户标识
*/
private Long cust_id;
/**
* 客户编码
*/
private String cust_code;
/**
* 客户名称
*/
private String cust_name;
/**
* 法人代表
*/
private String jurid_name;
/**
* 税务登记号
*/
private String tax_no;
/**
* 工商注册号
*/
private String register_no;
/**
* 经营许可证号
*/
private String manage_lice_no;
/**
* 营业执照
*/
private String busi_char_name;
/**
* 行政区划
*/
private Long area_id;
/**
* 邮政编码
*/
private String zip_code;
/**
* 公司电话
*/
private String corp_tele_no;
/**
* 公司地址
*/
private String corp_address;
/**
* 创建人
*/
private Long create_id;
/**
* 创建人姓名
*/
private String create_name;
/**
* 创建时间
*/
private String create_time;
/**
* 修改人
*/
private Long update_id;
/**
* 修改人姓名
*/
private String update_name;
/**
* 修改时间
*/
private String update_time;
/**
* 启用时间
*/
private String is_used_time;
/**
* 是否启用
*/
private String is_used;
/**
* 是否删除
*/
private String is_delete;
/**
* 外部标识
*/
private String ext_id;
/**
* 备注
*/
private String remark;
/**
* 分类标识
*/
private Long class_id;
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.masterdata_manage.master.service.customer.dao.mapper;
import org.nl.wms.masterdata_manage.master.service.customer.dao.MdCsCustomerbase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 客户基本信息表 Mapper 接口
* </p>
*
* @author generator
* @since 2023-06-25
*/
public interface MdCsCustomerbaseMapper extends BaseMapper<MdCsCustomerbase> {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.masterdata_manage.master.service.customer.dao.mapper.MdCsCustomerbaseMapper">
</mapper>

View File

@@ -0,0 +1,20 @@
package org.nl.wms.masterdata_manage.master.service.customer.impl;
import org.nl.wms.masterdata_manage.master.service.customer.dao.MdCsCustomerbase;
import org.nl.wms.masterdata_manage.master.service.customer.dao.mapper.MdCsCustomerbaseMapper;
import org.nl.wms.masterdata_manage.master.service.customer.IMdCsCustomerbaseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 客户基本信息表 服务实现类
* </p>
*
* @author generator
* @since 2023-06-25
*/
@Service
public class MdCsCustomerbaseServiceImpl extends ServiceImpl<MdCsCustomerbaseMapper, MdCsCustomerbase> implements IMdCsCustomerbaseService {
}

View File

@@ -28,6 +28,7 @@ public class MdPbStoragevehicleext implements Serializable {
/**
* 载具编码
*/
@TableId
private String storagevehicle_id;
/**
* 载具编码

View File

@@ -39,6 +39,7 @@ public class StructattrController {
@ApiOperation("查询仓位")
//@PreAuthorize("@el.check('structattr:list')")
public ResponseEntity<Object> queryAll(StructarrQuery query, PageQuery page) {
page.setSort("struct_code ASC");
Page<StIvtStructattr> list = ivtStructattrService.page(page.build(StIvtStructattr.class), query.build());
return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK);
}

View File

@@ -169,16 +169,29 @@ public class PdmProduceWorkorderController {
@ApiOperation("报工数修改")
@SaIgnore
public ResponseEntity<Object> reportQuery2(ReportQuery param, PageQuery pageQuery) {
Page<Object> page = PageHelper
.startPage(pageQuery.getPage() + 1, pageQuery.getSize())
.setOrderBy("workorder_code desc,seq_number asc");
param.setOrderby("true");
Page<Object> page = null;
if (pageQuery.getPage() != null && pageQuery.getSize() !=null){
page = PageHelper
.startPage(pageQuery.getPage() + 1, pageQuery.getSize())
.setOrderBy("workorder_code desc,seq_number asc");
param.setOrderby("true");
}
List<Map> list = iPdmProduceWorkorderService.reportQuery(param);
TableDataInfo<Map> build = TableDataInfo.build(list);
build.setTotalElements(page.getTotal());
if (page!=null){
build.setTotalElements(page.getTotal());
}
return new ResponseEntity<>(build, HttpStatus.OK);
}
@PostMapping("/reportQuery3")
@Log("工单报工数")
@ApiOperation("工单报工数")
@SaIgnore
public ResponseEntity<Object> reportQuery3(@RequestBody ReportQuery param) {
return new ResponseEntity<>(TableDataInfo.build(iPdmProduceWorkorderService.reportQuery(param)), HttpStatus.OK);
}
@Log("导出数据")
@ApiOperation("导出数据")
@PostMapping(value = "/download")

View File

@@ -633,6 +633,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
form.put("material_spec", material.getMaterial_spec());
form.put("device_code", workOrder.getDevice_code());
form.put("is_needmove", workOrder.getIs_needmove() ? 1 : 0);
form.put("is_used_fxx", workOrder.getIs_used_fxx() ? 1 : 0);
if (param.containsKey("extra_map")) {
form.put("extra_map", param.getJSONObject("extra_map"));
}

View File

@@ -1,8 +1,16 @@
package org.nl.wms.storage_manage.basedata.controller.record;
import io.swagger.annotations.ApiOperation;
import org.nl.common.anno.Log;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
@@ -14,8 +22,17 @@ import org.springframework.web.bind.annotation.RestController;
* @since 2023-05-10
*/
@RestController
@RequestMapping("/stIvtStructivtflowBcp")
@RequestMapping("/api/stIvtStructivtflowBcp")
public class StIvtStructivtflowBcpController {
@Autowired
private IStIvtStructivtflowService iStIvtStructivtflowService;
@GetMapping
@Log("查询库存变动记录")
@ApiOperation("查询库存变动记录")
public ResponseEntity<Object> query(IvtFlowQuery query, PageQuery page) {
return new ResponseEntity<>(iStIvtStructivtflowService.queryAll(query,page), HttpStatus.OK);
}
}

View File

@@ -45,12 +45,7 @@ public class StIvtStructivtflow implements Serializable {
/**
* 物料标识
*/
private String material_code;
/**
* 物料规格
*/
private String material_spec;
private String material_id;
/**
* 批次
@@ -79,7 +74,7 @@ public class StIvtStructivtflow implements Serializable {
/**
* 单据类型
*/
private String bill_type;
private String bill_type_scode;
/**
* 单据标识
@@ -104,17 +99,17 @@ public class StIvtStructivtflow implements Serializable {
/**
* 变动时间
*/
private Date create_time;
private String change_time;
/**
* 变动人
*/
private String create_id;
private String change_person_id;
/**
* 变动人姓名
*/
private String create_name;
private String change_person_name;
/**
* 变动数

View File

@@ -1,7 +1,12 @@
package org.nl.wms.storage_manage.basedata.service.record.dao.mapper;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.storage_manage.basedata.service.record.dao.StIvtStructivtflow;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import java.util.List;
import java.util.Map;
/**
* <p>
@@ -13,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface StIvtStructivtflowBcpMapper extends BaseMapper<StIvtStructivtflow> {
List<Map> queryAll(@Param("query") IvtFlowQuery query);
}

View File

@@ -2,4 +2,44 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.storage_manage.basedata.service.record.dao.mapper.StIvtStructivtflowBcpMapper">
<select id="queryAll" resultType="java.util.Map">
SELECT
ivt.*,
mater.material_code,
mater.material_name,
mater.material_spec,
attr.stor_name,
attr.stor_name,
attr.sect_name,
unit.unit_name
FROM
st_ivt_structivtflow_bcp ivt
LEFT JOIN md_me_materialbase mater ON mater.material_id = ivt.material_id
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
<where>
1 = 1
<if test="query.struct_code != null and query.struct_code != ''">
and (ivt.struct_code LIKE '%${query.struct_code}%' or
ivt.struct_name LIKE '%${query.struct_code}%' )
</if>
<if test="query.material_code != null and query.material_code != ''">
and (mater.material_code LIKE '%${query.material_code}%' or
mater.material_name LIKE '%${query.material_code}%' or
mater.material_spec LIKE '%${query.material_code}%'
)
</if>
<if test="query.bill_code != null and query.bill_code != ''">
and ivt.bill_code LIKE '%${query.bill_code}%'
</if>
<if test="query.change_type_scode != null and query.change_type_scode != ''">
and ivt.change_type_scode = #{query.change_type_scode}
</if>
<if test="query.stor_id != null and query.stor_id != ''">
and ivt.stor_id = #{query.stor_id}
</if>
</where>
order by ivt.change_time desc,ivt.struct_code ASC
</select>
</mapper>

View File

@@ -1,8 +1,11 @@
package org.nl.wms.storage_manage.basedata.service.record.service;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.storage_manage.basedata.service.record.dao.StIvtStructivtflow;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
/**
* <p>
@@ -15,4 +18,8 @@ import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowD
public interface IStIvtStructivtflowService extends IService<StIvtStructivtflow> {
void recordStructivtFlow(StIvtStructivtflowDto flowDto);
void insetIvtChange(JSONObject json);
Object queryAll(IvtFlowQuery query, PageQuery page);
}

View File

@@ -1,6 +1,12 @@
package org.nl.wms.storage_manage.basedata.service.record.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
@@ -13,6 +19,8 @@ import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivt
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtflowCp;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -34,6 +42,8 @@ public class StIvtStructivtflowServiceImpl extends ServiceImpl<StIvtStructivtflo
private IStIvtStructattrService structattrService;
@Autowired
private IMdMeMaterialbaseService materialbaseService;
@Autowired
protected IStIvtStructattrService iStIvtStructattrService; // 仓位属性服务
@Override
@Transactional
@@ -43,8 +53,6 @@ public class StIvtStructivtflowServiceImpl extends ServiceImpl<StIvtStructivtflo
flow.setChange_id(IdUtil.getStringId());
物料信息: {
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", flowDto.getMaterial_id()));
flow.setMaterial_code(material.getMaterial_code());
flow.setMaterial_spec(material.getMaterial_spec());
flow.setPcsn(flowDto.getPcsn());
}
仓库信息:{
@@ -58,9 +66,6 @@ public class StIvtStructivtflowServiceImpl extends ServiceImpl<StIvtStructivtflo
flow.setBill_table(flowDto.getBill_table());
flow.setChange_qty(flowDto.getChange_qty());
flow.setResult_qty(flowDto.getResult_qty());
flow.setCreate_id(SecurityUtils.getCurrentUserId());
flow.setCreate_name(SecurityUtils.getCurrentNickName());
flow.setCreate_time(new Date());
this.save(flow);
struct_attr.setStoragevehicle_code(flowDto.getStoragevehicle_code());
@@ -78,4 +83,43 @@ public class StIvtStructivtflowServiceImpl extends ServiceImpl<StIvtStructivtflo
}
structattrService.updateById(struct_attr);
}
@Override
@Transactional
public void insetIvtChange(JSONObject json) {
StIvtStructattr ivtDao = iStIvtStructattrService.getById(json.getString("struct_id"));
StIvtStructivtflow dao = new StIvtStructivtflow();
dao.setChange_id(IdUtil.getStringId());
dao.setStruct_id(json.getString("struct_id"));
dao.setStruct_code(json.getString("struct_code"));
dao.setStruct_name(json.getString("struct_name"));
dao.setMaterial_id(json.getString("material_id"));
dao.setQuality_scode(json.getString("quality_scode"));
dao.setIvt_level(json.getString("ivt_level"));
dao.setIs_active(json.getBoolean("is_active"));
dao.setPcsn(json.getString("pcsn"));
dao.setStor_id(ivtDao.getStor_id());
dao.setChange_type_scode(json.getString("change_type"));
dao.setChange_time(DateUtil.now());
dao.setChange_person_id(SecurityUtils.getCurrentUserId());
dao.setChange_person_name(SecurityUtils.getCurrentNickName());
dao.setChange_qty(json.getBigDecimal("change_qty"));
dao.setResult_qty(json.getBigDecimal("result_qty"));
dao.setQty_unit_id(json.getString("qty_unit_id"));
dao.setProduct_area(json.getString("workshop_id"));
dao.setBill_code(json.getString("bill_code"));
dao.setBill_type_scode(json.getString("bill_type_scode"));
dao.setInv_id(json.getString("inv_id"));
this.save(dao);
}
@Override
public Object queryAll(IvtFlowQuery query, PageQuery pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
TableDataInfo build = TableDataInfo.build(this.baseMapper.queryAll(query));
build.setTotalElements(page.getTotal());
return build;
}
}

View File

@@ -1,5 +1,15 @@
package org.nl.wms.storage_manage.productmanage.controller.structIvt;
import io.swagger.annotations.ApiOperation;
import org.nl.common.anno.Log;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtflowCpService;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dto.BcpIostorInvQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -12,8 +22,18 @@ import org.springframework.web.bind.annotation.RestController;
* @since 2023-05-04
*/
@RestController
@RequestMapping("/stIvtStructivtflowCp")
@RequestMapping("/api/stIvtStructivtflowCp")
public class StIvtStructivtflowCpController {
@Autowired
private IStIvtStructivtflowCpService iStIvtStructivtflowCpService;
@GetMapping
@Log("查询库存变动记录")
@ApiOperation("查询库存变动记录")
public ResponseEntity<Object> query(IvtFlowQuery query, PageQuery page) {
return new ResponseEntity<>(iStIvtStructivtflowCpService.queryAll(query,page), HttpStatus.OK);
}
}

View File

@@ -107,7 +107,7 @@ public class StIvtCheckdtlCp implements Serializable {
/**
* 是否已下发
*/
private String is_down;
private Boolean is_down;
/**
* 盘点数量

View File

@@ -82,14 +82,7 @@ public class StIvtCheckdtlCpServiceImpl extends ServiceImpl<StIvtCheckdtlCpMappe
if (ObjectUtil.isEmpty(structDao)) throw new BadRequestException("仓位不存在或未启用!");
row.setStruct_name(structDao.getStruct_name());
// 获取载具信息
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
new QueryWrapper<MdPbStoragevehicleinfo>().lambda()
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code, row.getStoragevehicle_code())
);
row.setStoragevehicle_id(vehicleDao.getStoragevehicle_id());
row.setStoragevehicle_code(vehicleDao.getStoragevehicle_code());
row.setStoragevehicle_id(IdUtil.getStringId()); // 随机生成
row.setStatus(CHECKEnum.DTL_STATUS.code("生成"));
this.save(row);

View File

@@ -544,7 +544,7 @@ public class StIvtCheckmstCpServiceImpl extends ServiceImpl<StIvtCheckmstCpMappe
.build();
BussEventMulticaster.Publish(event);
dtlDao.setIs_down("1");
dtlDao.setIs_down(true);
iStIvtCheckdtlCpService.updateById(dtlDao);
}

View File

@@ -487,7 +487,12 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
StIvtIostorinvdtlCp dtlDao = dtlDaoList.stream()
.filter(row -> row.getIostorinvdtl_id().equals(dao.getIostorinvdtl_id()))
.findAny().get();
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(dao,ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY,dtlDao.getBase_billdtl_id()));
JSONObject param = ivtDataParam(dao, ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY, dtlDao.getBase_billdtl_id());
param.put("bill_code",mstDao.getBill_code());
param.put("inv_id",mstDao.getIostorinv_id());
param.put("bill_type_scode",mstDao.getBill_type());
iStIvtStructivtCpService.UpdateIvt(param);
// 3解锁起点 / 将此托盘上的库存全部出掉
unLockNext(dao.getStruct_id());
@@ -826,6 +831,9 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
param.put("change_qty", ivtDao.getCanuse_qty());
param.put("sale_id", ivtDao.getSale_id());
param.put("change_type", ChangeIvtUtil.ADDFROZEN_SUBIVT_QTY);
param.put("bill_code",mstDao.getBill_code());
param.put("inv_id",mstDao.getIostorinv_id());
param.put("bill_type_scode",mstDao.getBill_type());
iStIvtStructivtCpService.UpdateIvt(param);
// 2.锁定仓位
@@ -848,6 +856,8 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
*/
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(dao.getIostorinvdtl_id());
StIvtIostorinvCp mstDao = this.getById(dtlDao.getIostorinv_id());
// 更新库存
JSONObject param = new JSONObject();
param.put("struct_id", dao.getStruct_id());
@@ -858,6 +868,9 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
param.put("change_qty", dao.getReal_qty());
param.put("sale_id", dtlDao.getBase_billdtl_id());
param.put("change_type", type);
param.put("bill_code",mstDao.getBill_code());
param.put("inv_id",mstDao.getIostorinv_id());
param.put("bill_type_scode",mstDao.getBill_type());
iStIvtStructivtCpService.UpdateIvt(param);
// 解锁仓位

View File

@@ -480,6 +480,9 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
JSONObject param = ivtDataParam(disDao_1, ChangeIvtUtil.ADDWAREHOUSING_QTY, dtlDao.getBase_billdtl_id());
param.put("product_area", mstDao.getProduct_area());
param.put("stor_id", mstDao.getStor_id());
param.put("bill_code",mstDao.getBill_code());
param.put("inv_id",mstDao.getIostorinv_id());
param.put("bill_type_scode",mstDao.getBill_type());
iStIvtStructivtCpService.UpdateIvt(param);
}
}
@@ -562,6 +565,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
.stream()
.collect(Collectors.groupingBy(StIvtIostorinvdisCp::getIostorinvdtl_id));
StIvtIostorinvCp mstDao = this.getById(disDao.getIostorinv_id());
for (List<StIvtIostorinvdisCp> list : collect.values()) {
BigDecimal qty = list
@@ -574,7 +578,11 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(disDao_1.getIostorinvdtl_id());
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao_1,ChangeIvtUtil.SUBWAREHOUSING_QTY,dtlDao.getBase_billdtl_id()));
JSONObject param = ivtDataParam(disDao_1, ChangeIvtUtil.SUBWAREHOUSING_QTY, dtlDao.getBase_billdtl_id());
param.put("bill_code",mstDao.getBill_code());
param.put("inv_id",mstDao.getIostorinv_id());
param.put("bill_type_scode",mstDao.getBill_type());
iStIvtStructivtCpService.UpdateIvt(param);
}
@@ -751,7 +759,11 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
// 2更新库存
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(dao.getIostorinvdtl_id());
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(dao,ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY,dtlDao.getBase_billdtl_id()));
JSONObject param = ivtDataParam(dao, ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY, dtlDao.getBase_billdtl_id());
param.put("bill_code",mstDao.getBill_code());
param.put("inv_id",mstDao.getIostorinv_id());
param.put("bill_type_scode",mstDao.getBill_type());
iStIvtStructivtCpService.UpdateIvt(param);
// 3解锁终点
unLockNext(dao.getStruct_id(),dao.getStoragevehicle_code());

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.common.utils.IdUtil;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
@@ -89,17 +90,12 @@ public class StIvtMoreorlessdtlCpServiceImpl extends ServiceImpl<StIvtMoreorless
row.setStruct_name(structDao.getStruct_name());
// 获取载具信息
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
new QueryWrapper<MdPbStoragevehicleinfo>().lambda()
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code, row.getStoragevehicle_code())
.eq(MdPbStoragevehicleinfo::getIs_used, true)
);
String storagevehicle_code = row.getStoragevehicle_code();
if (ObjectUtil.isEmpty(storagevehicle_code)) {
storagevehicle_code = CodeUtil.getNewCode("VEHICCLE_CODE_CDMTP");
}
if (ObjectUtil.isEmpty(vehicleDao)) throw new BadRequestException("载具不存在!");
row.setStoragevehicle_id(vehicleDao.getStoragevehicle_id());
row.setStoragevehicle_code(vehicleDao.getStoragevehicle_code());
row.setStoragevehicle_type(vehicleDao.getStoragevehicle_type());
row.setStoragevehicle_code(storagevehicle_code);
row.setStatus(MLEnum.DTL_STATUS.code("生成"));
this.save(row);

View File

@@ -181,7 +181,7 @@ public class StIvtMoreorlessmstCpServiceImpl extends ServiceImpl<StIvtMoreorless
ivt.setCanuse_qty(NumberUtil.sub(canuse_qty, mol_qty));
ivt.setIvt_qty(NumberUtil.sub(ivt_qty, mol_qty));
// 更新载具扩展属性重量
/* // 更新载具扩展属性重量
MdPbStoragevehicleext vehicleDao = iMdPbStoragevehicleextService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, dtl.getStoragevehicle_code())
@@ -189,7 +189,7 @@ public class StIvtMoreorlessmstCpServiceImpl extends ServiceImpl<StIvtMoreorless
if (ObjectUtil.isNotEmpty(vehicleDao)) {
vehicleDao.setStorage_qty(NumberUtil.sub(vehicleDao.getStorage_qty(),mol_qty));
iMdPbStoragevehicleextService.updateById(vehicleDao);
}
}*/
// 判断是否有箱
MdPbBucketrecord buckDao = iMdPbBucketrecordService.getOne(
@@ -218,14 +218,14 @@ public class StIvtMoreorlessmstCpServiceImpl extends ServiceImpl<StIvtMoreorless
.eq(MdPbBucketrecord::getMaterial_id, dtl.getMaterial_id())
);
// 更新载具扩展属性 - 释放载具对应物料关系 清空数量
/* // 更新载具扩展属性 - 释放载具对应物料关系 清空数量
iMdPbStoragevehicleextService.update(
new MdPbStoragevehicleext()
.setMaterial_id("")
.setStorage_qty(BigDecimal.valueOf(0)),
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code,dtl.getStoragevehicle_code())
);
);*/
// 更新货位 -- 清除载具号
structattrService.update(
@@ -271,7 +271,7 @@ public class StIvtMoreorlessmstCpServiceImpl extends ServiceImpl<StIvtMoreorless
struct_jo.setStoragevehicle_code(dtl.getStoragevehicle_code());
structattrService.updateById(struct_jo);
// 更新载具对应物料关系、数量
/* // 更新载具对应物料关系、数量
MdPbStoragevehicleext vehicleDao = iMdPbStoragevehicleextService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, dtl.getStoragevehicle_code())
@@ -280,7 +280,7 @@ public class StIvtMoreorlessmstCpServiceImpl extends ServiceImpl<StIvtMoreorless
vehicleDao.setStorage_qty(mol_qty);
vehicleDao.setMaterial_id(dtl.getMaterial_id());
iMdPbStoragevehicleextService.updateById(vehicleDao);
}
}*/
// 判断是否有箱
if (ObjectUtil.isNotEmpty(dtl.getBucketunique())) {
@@ -350,7 +350,7 @@ public class StIvtMoreorlessmstCpServiceImpl extends ServiceImpl<StIvtMoreorless
}
}
// 更新载具扩展属性 - 数量
/* // 更新载具扩展属性 - 数量
MdPbStoragevehicleext vehicleDao = iMdPbStoragevehicleextService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, dtl.getStoragevehicle_code())
@@ -358,7 +358,7 @@ public class StIvtMoreorlessmstCpServiceImpl extends ServiceImpl<StIvtMoreorless
if (ObjectUtil.isNotEmpty(vehicleDao)) {
vehicleDao.setStorage_qty(NumberUtil.add(vehicleDao.getStorage_qty(), dtl.getMol_qty()));
iMdPbStoragevehicleextService.updateById(vehicleDao);
}
}*/
}
//更新明细状态

View File

@@ -1,7 +1,9 @@
package org.nl.wms.storage_manage.productmanage.service.structIvt;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtflowCp;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
/**
* <p>
@@ -13,4 +15,5 @@ import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStruct
*/
public interface IStIvtStructivtflowCpService extends IService<StIvtStructivtflowCp> {
Object queryAll(IvtFlowQuery query, PageQuery page);
}

View File

@@ -1,7 +1,12 @@
package org.nl.wms.storage_manage.productmanage.service.structIvt.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtflowCp;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import java.util.List;
import java.util.Map;
/**
* <p>
@@ -13,4 +18,5 @@ import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStruct
*/
public interface StIvtStructivtflowCpMapper extends BaseMapper<StIvtStructivtflowCp> {
List<Map> queryAll(@Param("query") IvtFlowQuery query);
}

View File

@@ -2,4 +2,44 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.storage_manage.productmanage.service.structIvt.dao.mapper.StIvtStructivtflowCpMapper">
<select id="queryAll" resultType="java.util.Map">
SELECT
ivt.*,
mater.material_code,
mater.material_name,
mater.material_spec,
attr.stor_name,
attr.stor_name,
attr.sect_name,
unit.unit_name
FROM
st_ivt_structivtflow_cp ivt
LEFT JOIN md_me_materialbase mater ON mater.material_id = ivt.material_id
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
<where>
1 = 1
<if test="query.struct_code != null and query.struct_code != ''">
and (ivt.struct_code LIKE '%${query.struct_code}%' or
ivt.struct_name LIKE '%${query.struct_code}%' )
</if>
<if test="query.material_code != null and query.material_code != ''">
and (mater.material_code LIKE '%${query.material_code}%' or
mater.material_name LIKE '%${query.material_code}%' or
mater.material_spec LIKE '%${query.material_code}%'
)
</if>
<if test="query.bill_code != null and query.bill_code != ''">
and ivt.bill_code LIKE '%${query.bill_code}%'
</if>
<if test="query.change_type_scode != null and query.change_type_scode != ''">
and ivt.change_type_scode = #{query.change_type_scode}
</if>
<if test="query.stor_id != null and query.stor_id != ''">
and ivt.stor_id = #{query.stor_id}
</if>
</where>
order by ivt.change_time desc,ivt.struct_code ASC
</select>
</mapper>

View File

@@ -0,0 +1,33 @@
package org.nl.wms.storage_manage.productmanage.service.structIvt.dto;
import lombok.Data;
import org.nl.common.domain.query.BaseQuery;
import org.nl.common.domain.query.QParam;
import org.nl.common.enums.QueryTEnum;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
/*
* @author LXY
* @Date 2023/5/4 19:49
*/
@Data
public class IvtFlowQuery extends BaseQuery<StIvtStructivtCp> {
private String struct_code;
private String bill_code;
private String change_type_scode;
private String material_code;
private String stor_id;
@Override
public void paramMapping() {
super.doP.put("struct_code", QParam.builder().k(new String[]{"struct_code"}).type(QueryTEnum.LK).build());
}
}

View File

@@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.productmanage.service.structIvt.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -11,6 +12,7 @@ import com.github.pagehelper.PageHelper;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
@@ -19,7 +21,9 @@ import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService;
import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtflowCpService;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtflowCp;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.mapper.StIvtStructivtCpMapper;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.CpIvtQuery;
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
@@ -54,6 +58,9 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
@Autowired
protected IMdPbBucketrecordService iMdPbBucketrecordService; // 包装箱记录表服务
@Autowired
protected IStIvtStructivtflowCpService iStIvtStructivtflowCpService; // 库存变动记录服务
@Override
public Object packageQuery(CpIvtQuery query, PageQuery pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
@@ -177,10 +184,30 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
dao.setUnit_weight(materDao.getNet_weight());
this.save(dao);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(dao));
param.put("change_type_scode", ChangeIvtUtil.ADDWAREHOUSING_QTY);
param.put("change_qty", json.getBigDecimal("change_qty"));
param.put("inv_id", json.getString("inv_id"));
param.put("bill_type_scode", json.getString("bill_type_scode"));
param.put("bill_code", json.getString("bill_code"));
param.put("result_qty", 0);
insetIvtChange(param);
} else {
// 更新待入数
ivtDao.setWarehousing_qty(NumberUtil.add(ivtDao.getWarehousing_qty(),json.getDoubleValue("change_qty")));
this.updateById(ivtDao);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type_scode", ChangeIvtUtil.ADDWAREHOUSING_QTY);
param.put("inv_id", json.getString("inv_id"));
param.put("bill_type_scode", json.getString("bill_type_scode"));
param.put("bill_code", json.getString("bill_code"));
param.put("change_qty", json.getBigDecimal("change_qty"));
param.put("result_qty", ivtDao.getIvt_qty());
insetIvtChange(param);
}
}
@@ -214,6 +241,16 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
ivtDao.setWarehousing_qty(BigDecimal.valueOf(change_qty));
this.updateById(ivtDao);
}
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type_scode", ChangeIvtUtil.SUBWAREHOUSING_QTY);
param.put("inv_id", json.getString("inv_id"));
param.put("bill_type_scode", json.getString("bill_type_scode"));
param.put("bill_code", json.getString("bill_code"));
param.put("change_qty", json.getDoubleValue("change_qty"));
param.put("result_qty", ivtDao.getIvt_qty());
insetIvtChange(param);
}
}
@@ -247,6 +284,16 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
ivtDao.setIvt_qty(ivt_qty);
ivtDao.setInstorage_time(DateUtil.now());
this.updateById(ivtDao);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type_scode", ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY);
param.put("inv_id", json.getString("inv_id"));
param.put("bill_type_scode", json.getString("bill_type_scode"));
param.put("bill_code", json.getString("bill_code"));
param.put("change_qty", json.getDoubleValue("change_qty"));
param.put("result_qty", ivt_qty);
insetIvtChange(param);
}
}
@@ -284,6 +331,16 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
ivtDao.setCanuse_qty(BigDecimal.valueOf(canuse_qty));
ivtDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty));
this.updateById(ivtDao);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type_scode", ChangeIvtUtil.ADDFROZEN_SUBIVT_QTY);
param.put("inv_id", json.getString("inv_id"));
param.put("bill_type_scode", json.getString("bill_type_scode"));
param.put("bill_code", json.getString("bill_code"));
param.put("change_qty", json.getBigDecimal("change_qty"));
param.put("result_qty", ivtDao.getIvt_qty());
insetIvtChange(param);
}
/*
@@ -321,6 +378,15 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
ivtDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty));
this.updateById(ivtDao);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type_scode", ChangeIvtUtil.SUBFROZEN_ADDIVT_QTY);
param.put("inv_id", json.getString("inv_id"));
param.put("bill_type_scode", json.getString("bill_type_scode"));
param.put("bill_code", json.getString("bill_code"));
param.put("change_qty", json.getBigDecimal("change_qty"));
param.put("result_qty", ivtDao.getIvt_qty());
insetIvtChange(param);
}
/*
@@ -362,6 +428,16 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
ivtDao.setIvt_qty(BigDecimal.valueOf(ivt_qty));
this.updateById(ivtDao);
}
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type_scode", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY);
param.put("inv_id", json.getString("inv_id"));
param.put("bill_type_scode", json.getString("bill_type_scode"));
param.put("bill_code", json.getString("bill_code"));
param.put("change_qty", json.getBigDecimal("change_qty"));
param.put("result_qty", ivt_qty);
insetIvtChange(param);
}
/*
@@ -389,5 +465,46 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
if (ObjectUtil.isEmpty(json.getString("change_type")))
throw new BadRequestException("更新库存失败:变动类型不能为空!");
if (ObjectUtil.isEmpty(json.getString("bill_code")))
throw new BadRequestException("更新库存失败:单据号不能为空!");
if (ObjectUtil.isEmpty(json.getString("bill_type_scode")))
throw new BadRequestException("更新库存失败:单据类型不能为空!");
if (ObjectUtil.isEmpty(json.getString("inv_id")))
throw new BadRequestException("更新库存失败:单据标识不能为空!");
}
/*
插入库存变动记录
*/
private void insetIvtChange(JSONObject json) {
StIvtStructattr ivtDao = iStIvtStructattrService.getById(json.getString("struct_id"));
StIvtStructivtflowCp dao = new StIvtStructivtflowCp();
dao.setChange_id(IdUtil.getStringId());
dao.setStruct_id(json.getString("struct_id"));
dao.setStruct_code(json.getString("struct_code"));
dao.setStruct_name(json.getString("struct_name"));
dao.setMaterial_id(json.getString("material_id"));
dao.setQuality_scode(json.getString("quality_scode"));
dao.setIvt_level(json.getString("ivt_level"));
dao.setIs_active(json.getBoolean("is_active"));
dao.setPcsn(json.getString("pcsn"));
dao.setStor_id(ivtDao.getStor_id());
dao.setChange_type_scode(json.getString("change_type_scode"));
dao.setChange_time(DateUtil.now());
dao.setChange_person_id(SecurityUtils.getCurrentUserId());
dao.setChange_person_name(SecurityUtils.getCurrentNickName());
dao.setChange_qty(json.getBigDecimal("change_qty"));
dao.setResult_qty(json.getBigDecimal("result_qty"));
dao.setQty_unit_id(json.getString("qty_unit_id"));
dao.setProduct_area(json.getString("product_area"));
dao.setBill_code(json.getString("bill_code"));
dao.setBill_type_scode(json.getString("bill_type_scode"));
dao.setInv_id(json.getString("inv_id"));
iStIvtStructivtflowCpService.save(dao);
}
}

View File

@@ -1,9 +1,14 @@
package org.nl.wms.storage_manage.productmanage.service.structIvt.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtflowCpService;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtflowCp;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.mapper.StIvtStructivtflowCpMapper;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import org.springframework.stereotype.Service;
/**
@@ -17,4 +22,11 @@ import org.springframework.stereotype.Service;
@Service
public class StIvtStructivtflowCpServiceImpl extends ServiceImpl<StIvtStructivtflowCpMapper, StIvtStructivtflowCp> implements IStIvtStructivtflowCpService {
@Override
public Object queryAll(IvtFlowQuery query, PageQuery pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
TableDataInfo build = TableDataInfo.build(this.baseMapper.queryAll(query));
build.setTotalElements(page.getTotal());
return build;
}
}

View File

@@ -50,7 +50,7 @@ public class StIvtIostorinvYlOutController {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PostMapping("/delete")
@DeleteMapping
@Log("删除入库单")
@ApiOperation("删除入库单")
public ResponseEntity<Object> delete(@RequestBody Long[] ids){

View File

@@ -1,8 +1,16 @@
package org.nl.wms.storage_manage.rawmanage.controller.structIvt;
import io.swagger.annotations.ApiOperation;
import org.nl.common.anno.Log;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtflowYlService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
@@ -14,8 +22,18 @@ import org.springframework.web.bind.annotation.RestController;
* @since 2023-05-10
*/
@RestController
@RequestMapping("/stIvtStructivtflowYl")
@RequestMapping("/api/stIvtStructivtflowYl")
public class StIvtStructivtflowYlController {
@Autowired
private IStIvtStructivtflowYlService iStIvtStructivtflowYlService;
@GetMapping
@Log("查询库存变动记录")
@ApiOperation("查询库存变动记录")
public ResponseEntity<Object> query(IvtFlowQuery query, PageQuery page) {
return new ResponseEntity<>(iStIvtStructivtflowYlService.queryAll(query,page), HttpStatus.OK);
}
}

View File

@@ -3,7 +3,7 @@
<mapper namespace="org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvOutYlMapper">
<select id="getMstDetail" resultType="java.util.Map">
SELECT DISTINCT
SELECT
mst.iostorinv_id,
mst.bill_code,
mst.io_type,
@@ -56,6 +56,8 @@
</if>
</where>
order by mst.create_time DESC
</select>
</mapper>

View File

@@ -3,7 +3,7 @@
<mapper namespace="org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvYlMapper">
<select id="getMstDetail" resultType="java.util.Map">
SELECT DISTINCT
SELECT
mst.iostorinv_id,
mst.bill_code,
mst.io_type,
@@ -59,6 +59,7 @@
</if>
</where>
order by mst.create_time DESC
</select>
</mapper>

View File

@@ -26,6 +26,7 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstora
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.IStIvtIostorinvOutYlService;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.IStIvtIostorinvdisYlService;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.IStIvtIostorinvdtlYlService;
@@ -36,6 +37,7 @@ import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIos
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvYlMapper;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dto.YlIostorInvQuery;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtYlService;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtflowYlService;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.StIvtStructivtYl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -74,6 +76,9 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvOu
@Autowired
private IStIvtStructattrService structattrService;
@Autowired
private IStIvtStructivtflowYlService iStIvtStructivtflowYlService;
@Override
public Object pageQuery(YlIostorInvQuery query, PageQuery pageQuery) {
@@ -138,6 +143,14 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvOu
String iostorinv_id = form.getString("iostorinv_id");
StIvtIostorinvYl mst = this.getById(iostorinv_id);
mst.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
mst.setDis_id(SecurityUtils.getCurrentUserId());
mst.setDis_name(SecurityUtils.getCurrentNickName());
mst.setDis_time(DateUtil.now());
mst.setConfirm_id(SecurityUtils.getCurrentUserId());
mst.setConfirm_name(SecurityUtils.getCurrentNickName());
mst.setConfirm_time(DateUtil.now());
this.updateById(mst);
List<StIvtIostorinvdtlYl> dtl_list = iostorinvdtlYlService.list(new QueryWrapper<StIvtIostorinvdtlYl>().eq("iostorinv_id", iostorinv_id));
@@ -187,12 +200,32 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvOu
ivt.setIvt_qty(BigDecimal.valueOf(sub));
structivtYlService.updateById(ivt);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivt));
param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY);
param.put("change_qty",need_qty);
param.put("result_qty", sub);
param.put("bill_code",mst.getBill_code());
param.put("inv_id",mst.getIostorinv_id());
param.put("bill_type_scode",mst.getBill_type());
iStIvtStructivtflowYlService.insetIvtChange(param);
need_qty = 0;
} else {
dis.put("plan_qty", canuse_qty);
dis.put("real_qty", canuse_qty);
structivtYlService.remove(new QueryWrapper<StIvtStructivtYl>().eq("stockrecord_id", ivt.getStockrecord_id()));
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivt));
param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY);
param.put("change_qty",need_qty);
param.put("result_qty", 0);
param.put("bill_code",mst.getBill_code());
param.put("inv_id",mst.getIostorinv_id());
param.put("bill_type_scode",mst.getBill_type());
iStIvtStructivtflowYlService.insetIvtChange(param);
need_qty = NumberUtil.sub(need_qty - canuse_qty).doubleValue();
}
JSONObject mst_jo = new JSONObject();

View File

@@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.rawmanage.service.iostorInv.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -22,6 +23,7 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstora
import org.nl.wms.pcs_manage.service.purchase.IPcsIfPurchaseorderService;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.IStIvtIostorinvYlService;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.IStIvtIostorinvdisYlService;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.IStIvtIostorinvdtlYlService;
@@ -31,6 +33,7 @@ import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvd
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvYlMapper;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dto.YlIostorInvQuery;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtYlService;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtflowYlService;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.StIvtStructivtYl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -65,6 +68,9 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl<StIvtIostorinvYlMap
@Autowired
private IPcsIfPurchaseorderService purchaseorderService;
@Autowired
private IStIvtStructivtflowYlService iStIvtStructivtflowYlService;
@Override
public Object pageQuery(YlIostorInvQuery query, PageQuery pageQuery) {
@@ -155,8 +161,18 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl<StIvtIostorinvYlMap
structivtYl.setCanuse_qty(NumberUtil.add(structivtYl.getCanuse_qty(), dis.getPlan_qty()));
structivtYl.setIvt_qty(structivtYl.getCanuse_qty());
structivtYlService.updateById(structivtYl);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(structivtYl));
param.put("change_type", ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY);
param.put("change_qty",dis.getPlan_qty());
param.put("result_qty", structivtYl.getCanuse_qty());
param.put("bill_code",mst.getBill_code());
param.put("inv_id",mst.getIostorinv_id());
param.put("bill_type_scode",mst.getBill_type());
iStIvtStructivtflowYlService.insetIvtChange(param);
} else {
structivtYlService.save(StIvtStructivtYl.builder()
StIvtStructivtYl ivtDao = StIvtStructivtYl.builder()
.stockrecord_id(IdUtil.getStringId())
.struct_id(dis.getStruct_id())
.struct_code(dis.getStruct_code())
@@ -172,8 +188,18 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl<StIvtIostorinvYlMap
.instorage_time(DateUtil.now())
.stor_id(mst.getStor_id())
.workshop_id(mst.getWorkshop_id())
.build()
);
.build();
structivtYlService.save(ivtDao);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type", ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY);
param.put("change_qty",dis.getPlan_qty());
param.put("result_qty", dis.getPlan_qty());
param.put("bill_code",mst.getBill_code());
param.put("inv_id",mst.getIostorinv_id());
param.put("bill_type_scode",mst.getBill_type());
iStIvtStructivtflowYlService.insetIvtChange(param);
}
/*//修改库存和插入库存变动记录表
@@ -207,6 +233,9 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl<StIvtIostorinvYlMap
mst.setConfirm_id(SecurityUtils.getCurrentUserId());
mst.setConfirm_name(SecurityUtils.getCurrentNickName());
mst.setConfirm_time(DateUtil.now());
mst.setDis_id(SecurityUtils.getCurrentUserId());
mst.setDis_name(SecurityUtils.getCurrentNickName());
mst.setDis_time(DateUtil.now());
mst.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
this.updateById(mst);

View File

@@ -1,5 +1,8 @@
package org.nl.wms.storage_manage.rawmanage.service.structIvt;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.StIvtStructivtflowYl;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -13,4 +16,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IStIvtStructivtflowYlService extends IService<StIvtStructivtflowYl> {
void insetIvtChange(JSONObject json);
Object queryAll(IvtFlowQuery query, PageQuery page);
}

View File

@@ -100,7 +100,7 @@ public class StIvtStructivtflowYl implements Serializable {
/**
* 变动时间
*/
private Date change_time;
private String change_time;
/**
* 变动人

View File

@@ -1,8 +1,13 @@
package org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.mapper;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.StIvtStructivtflowYl;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/**
* <p>
* 仓位库存变动记录表 Mapper 接口
@@ -13,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface StIvtStructivtflowYlMapper extends BaseMapper<StIvtStructivtflowYl> {
List<Map> queryAll(@Param("query") IvtFlowQuery query);
}

View File

@@ -2,4 +2,43 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.mapper.StIvtStructivtflowYlMapper">
<select id="queryAll" resultType="java.util.Map">
SELECT
ivt.*,
mater.material_code,
mater.material_name,
mater.material_spec,
attr.stor_name,
attr.stor_name,
attr.sect_name,
unit.unit_name
FROM
st_ivt_structivtflow_yl ivt
LEFT JOIN md_me_materialbase mater ON mater.material_id = ivt.material_id
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
<where>
1 = 1
<if test="query.struct_code != null and query.struct_code != ''">
and (ivt.struct_code LIKE '%${query.struct_code}%' or
ivt.struct_name LIKE '%${query.struct_code}%' )
</if>
<if test="query.material_code != null and query.material_code != ''">
and (mater.material_code LIKE '%${query.material_code}%' or
mater.material_name LIKE '%${query.material_code}%' or
mater.material_spec LIKE '%${query.material_code}%'
)
</if>
<if test="query.bill_code != null and query.bill_code != ''">
and ivt.bill_code LIKE '%${query.bill_code}%'
</if>
<if test="query.change_type_scode != null and query.change_type_scode != ''">
and ivt.change_type_scode = #{query.change_type_scode}
</if>
<if test="query.stor_id != null and query.stor_id != ''">
and ivt.stor_id = #{query.stor_id}
</if>
</where>
order by ivt.change_time desc,ivt.struct_code ASC
</select>
</mapper>

View File

@@ -1,9 +1,22 @@
package org.nl.wms.storage_manage.rawmanage.service.structIvt.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.storage_manage.basedata.service.record.dao.StIvtStructivtflow;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.IvtFlowQuery;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.StIvtStructivtflowYl;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.mapper.StIvtStructivtflowYlMapper;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtflowYlService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@@ -17,4 +30,44 @@ import org.springframework.stereotype.Service;
@Service
public class StIvtStructivtflowYlServiceImpl extends ServiceImpl<StIvtStructivtflowYlMapper, StIvtStructivtflowYl> implements IStIvtStructivtflowYlService {
@Autowired
protected IStIvtStructattrService iStIvtStructattrService; // 仓位属性服务
@Override
public void insetIvtChange(JSONObject json) {
StIvtStructattr ivtDao = iStIvtStructattrService.getById(json.getString("struct_id"));
StIvtStructivtflowYl dao = new StIvtStructivtflowYl();
dao.setChange_id(IdUtil.getStringId());
dao.setStruct_id(json.getString("struct_id"));
dao.setStruct_code(json.getString("struct_code"));
dao.setStruct_name(json.getString("struct_name"));
dao.setMaterial_id(json.getString("material_id"));
dao.setQuality_scode(json.getString("quality_scode"));
dao.setIvt_level(json.getString("ivt_level"));
dao.setIs_active(json.getBoolean("is_active"));
dao.setPcsn(json.getString("pcsn"));
dao.setStor_id(ivtDao.getStor_id());
dao.setChange_type_scode(json.getString("change_type"));
dao.setChange_time(DateUtil.now());
dao.setChange_person_id(SecurityUtils.getCurrentUserId());
dao.setChange_person_name(SecurityUtils.getCurrentNickName());
dao.setChange_qty(json.getBigDecimal("change_qty"));
dao.setResult_qty(json.getBigDecimal("result_qty"));
dao.setQty_unit_id(json.getString("qty_unit_id"));
dao.setProduct_area(json.getString("workshop_id"));
dao.setBill_code(json.getString("bill_code"));
dao.setBill_type_scode(json.getString("bill_type_scode"));
dao.setInv_id(json.getString("inv_id"));
this.save(dao);
}
@Override
public Object queryAll(IvtFlowQuery query, PageQuery pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
TableDataInfo build = TableDataInfo.build(this.baseMapper.queryAll(query));
build.setTotalElements(page.getTotal());
return build;
}
}

View File

@@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.semimanage.controller.iostorInv;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -10,6 +11,8 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.anno.Log;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dto.BcpIostorInvQuery;
@@ -18,6 +21,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Map;
@@ -39,6 +43,9 @@ public class StIvtIostorinvBcpController {
@Autowired
private IStIvtIostorinvBcpService stIvtIostorinvBcpService;
@Autowired
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务
@GetMapping
@Log("查询入库单据")
@ApiOperation("查询入库单据")
@@ -62,6 +69,17 @@ public class StIvtIostorinvBcpController {
stIvtIostorinvBcpService.update(new UpdateWrapper<StIvtIostorinvBcp>()
.set("is_delete","1")
.in("iostorinv_id",ids));
StIvtIostorinvBcp mst = stIvtIostorinvBcpService.getById(ids);
// 更新载具扩展属性 - 释放载具对应物料关系 清空数量
iMdPbStoragevehicleextService.update(
new MdPbStoragevehicleext()
.setMaterial_id("")
.setStorage_qty(BigDecimal.valueOf(0)),
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code,mst.getStoragevehicle_code())
);
}
return new ResponseEntity<>(HttpStatus.OK);
}

View File

@@ -385,6 +385,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
dtl_jo.put("source_bill_type", jo_mst.getCheck_type());
dtl_jo.put("source_bill_code", jo_mst.getCheck_code());
dtl_jo.put("source_bill_table", "ST_IVT_CheckMst_YL");
dtl_jo.put("storagevehicle_code", dtl.getStoragevehicle_code());
JSONArray mol_rows = new JSONArray();
mol_rows.add(dtl_jo);
mol_jo.put("tableData", mol_rows);

View File

@@ -27,6 +27,8 @@ import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
@@ -40,6 +42,7 @@ import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
@@ -52,6 +55,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
@@ -83,7 +87,10 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
@Autowired
private IMdMeMaterialbaseService materialbaseService;
@Autowired
private IStIvtStructivtflowService iStIvtStructivtflowService; // 库存变动服务
@Autowired
protected IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务
@Override
public Object queryDtl(BcpIostorInvQuery query, PageQuery pageQuery) {
@@ -181,9 +188,20 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
mst.setUpdate_name(SecurityUtils.getCurrentNickName());
this.updateById(mst);
StIvtStructivtBcp ivtDao = structivtBcpService.getById(mst.getStruct_id());
//删除库存
structivtBcpService.remove(new QueryWrapper<StIvtStructivtBcp>().eq("struct_id", mst.getStruct_id()));
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY);
param.put("change_qty", ivtDao.getCanuse_qty());
param.put("result_qty", 0);
param.put("bill_code",mst.getBill_code());
param.put("inv_id",mst.getIostorinv_id());
param.put("bill_type_scode",mst.getBill_type());
iStIvtStructivtflowService.insetIvtChange(param);
/*structivtflowService.recordStructivtFlow(
StIvtStructivtflowDto.builder()
.bill_code(mst.getBill_code()).change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM).bill_table("st_ivt_iostorinv_bcp")
@@ -208,6 +226,15 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
.eq(SchBaseTask::getTask_id, mst.getTask_id())
);
// 更新载具扩展属性 - 释放载具对应物料关系 清空数量
iMdPbStoragevehicleextService.update(
new MdPbStoragevehicleext()
.setMaterial_id("")
.setStorage_qty(BigDecimal.valueOf(0)),
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code,mst.getStoragevehicle_code())
);
return null;
}

View File

@@ -25,6 +25,10 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
@@ -38,6 +42,7 @@ import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivt
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr;
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dao.StIvtStructivtYl;
@@ -83,7 +88,12 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
private IStIvtSectattrService sectattrService;
@Autowired
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
@Autowired
private IStIvtStructivtflowService iStIvtStructivtflowService; // 库存变动服务
@Autowired
protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息
@Autowired
protected IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务
@Override
public Object queryDtl(BcpIostorInvQuery query, PageQuery pageQuery) {
@@ -137,8 +147,29 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
mst.setBase_bill_code(row.getString("base_bill_code"));
mst.setQty_unit_name(row.getString("base_unit_name"));
mst.setUnit_weight(row.getBigDecimal("unit_weight"));
mst.setStoragevehicle_code(row.getString("storagevehicle_code"));
mst.setStoragevehicle_id(row.getString("storagevehicle_id"));
// 载具信息
{
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
new QueryWrapper<MdPbStoragevehicleinfo>().lambda()
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code, row.getString("storagevehicle_code"))
);
if (ObjectUtil.isEmpty(vehicleDao)) throw new BadRequestException("载具不存在!");
mst.setStoragevehicle_code(vehicleDao.getStoragevehicle_code());
mst.setStoragevehicle_id(vehicleDao.getStoragevehicle_id());
// 更新载具对应物料关系、数量
MdPbStoragevehicleext vehicleExtDao = iMdPbStoragevehicleextService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, row.getString("storagevehicle_code"))
);
if (ObjectUtil.isNotEmpty(vehicleDao)) {
vehicleExtDao.setStorage_qty(mst.getPlan_qty());
vehicleExtDao.setMaterial_id(mst.getMaterial_id());
iMdPbStoragevehicleextService.updateById(vehicleExtDao);
}
}
}
@Override
@@ -158,7 +189,7 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
this.updateById(mst);
//新增库存
structivtBcpService.save(StIvtStructivtBcp.builder()
StIvtStructivtBcp ivtDao = StIvtStructivtBcp.builder()
.struct_id(mst.getStruct_id())
.struct_code(mst.getStruct_code())
.struct_name(mst.getStruct_name())
@@ -173,8 +204,18 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
.canuse_qty(mst.getPlan_qty())
.workshop_id(mst.getWorkshop_id())
.unit_weight(mst.getUnit_weight())
.build()
);
.build();
structivtBcpService.save(ivtDao);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type", ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY);
param.put("change_qty", ivtDao.getCanuse_qty());
param.put("result_qty", ivtDao.getCanuse_qty());
param.put("bill_code",mst.getBill_code());
param.put("inv_id",mst.getIostorinv_id());
param.put("bill_type_scode",mst.getBill_type());
iStIvtStructivtflowService.insetIvtChange(param);
//维护载具
structattrService.update(new UpdateWrapper<StIvtStructattr>().lambda()

View File

@@ -122,6 +122,7 @@
attr.struct_name,
attr.sect_code,
attr.sect_name,
attr.stor_name,
attr.storagevehicle_code
FROM
st_ivt_structivt_bcp ivt

View File

@@ -19,7 +19,7 @@ https://juejin.cn/post/6844903775631572999
<!--引入默认的一些设置-->
<!-- <include resource="log/AutoCreateInst.xml"/>-->
<appender name="esLogAppender" class="com.internetitem.logback.elasticsearch.ElasticsearchAppender">
<url>http://192.168.46.225:9200/_bulk</url>
<url>http://127.0.0.1:9200/_bulk</url>
<index>${esIndex}</index>
<type>mes_log</type>
<loggerName>es-logger</loggerName> <!-- optional -->
@@ -79,10 +79,8 @@ https://juejin.cn/post/6844903775631572999
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<withJansi>true</withJansi>
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
<encoder>
<pattern>${log.pattern}</pattern>
<!-- <charset>${log.charset}</charset>-->
</encoder>
</appender>
@@ -100,15 +98,14 @@ https://juejin.cn/post/6844903775631572999
<!--所有日志最多占多大容量-->
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<!-- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
<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>
</encoder>
</appender>
<!--异步到文件-->
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>500</queueSize>
<appender-ref ref="FILE"/>
@@ -120,7 +117,6 @@ https://juejin.cn/post/6844903775631572999
<springProfile name="dev">
<root level="debug">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="esLogAppender"/>
</root>
<logger name="jdbc.audit" level="ERROR" additivity="false">
@@ -129,6 +125,10 @@ https://juejin.cn/post/6844903775631572999
<logger name="jdbc.resultset" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="es-logger" level="warn" additivity="false">
<appender-ref ref="esLogAppender"/>
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="springfox.documentation" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
@@ -168,6 +168,10 @@ https://juejin.cn/post/6844903775631572999
<logger name="jdbc.sqltiming" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="es-logger" level="warn" additivity="false">
<appender-ref ref="esLogAppender"/>
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="org.jinterop" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
@@ -177,26 +181,36 @@ https://juejin.cn/post/6844903775631572999
<appender-ref ref="CONSOLE"/>
<appender-ref ref="esLogAppender"/>
</root>
<logger name="es-logger" level="warn" additivity="false">
<appender-ref ref="esLogAppender"/>
</logger>
<logger name="jdbc.audit" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
<appender-ref ref="esLogAppender"/>
</logger>
<logger name="jdbc.resultset" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
<appender-ref ref="esLogAppender"/>
</logger>
<logger name="springfox.documentation" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
<appender-ref ref="esLogAppender"/>
</logger>
<logger name="jdbc.resultsettable" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
<appender-ref ref="esLogAppender"/>
</logger>
<logger name="jdbc.sqlonly" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
\<appender-ref ref="esLogAppender"/>
</logger>
<logger name="jdbc.sqltiming" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
<appender-ref ref="esLogAppender"/>
</logger>
<logger name="org.jinterop" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
\<appender-ref ref="esLogAppender"/>
</logger>
</springProfile>
<!--测试环境:打印控制台-->
@@ -211,11 +225,5 @@ https://juejin.cn/post/6844903775631572999
</springProfile>
<!--生产环境:打印控制台和输出到文件-->
<springProfile name="prod">
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
</root>
</springProfile>
</configuration>