add:修改成品出入库未mybatis
This commit is contained in:
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
|
||||
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
|
||||
import com.baomidou.mybatisplus.generator.config.PackageConfig;
|
||||
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
|
||||
import com.baomidou.mybatisplus.generator.config.rules.DateType;
|
||||
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -52,6 +53,7 @@ public class CodeGenerator {
|
||||
gc.setEntityName("%s");
|
||||
gc.setServiceName("I%sService");
|
||||
gc.setServiceImplName("%sServiceImpl");
|
||||
gc.setDateType(DateType.ONLY_DATE);
|
||||
mpg.setGlobalConfig(gc);
|
||||
// 数据源配置
|
||||
DataSourceConfig dsc = new DataSourceConfig();
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package org.nl.wms.masterdata_manage;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/4 20:11
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum MasterEnum {
|
||||
//出入库类型
|
||||
MATERIAL_QUALITY(MapOf.of("一等品","1","二等品","2")),
|
||||
//单据类型
|
||||
BILL_TYPE(MapOf.of("生产入库","1","退货入库","2")),
|
||||
//单据类型
|
||||
BILL_STATUS(MapOf.of("创建","1","生成","2")),
|
||||
;
|
||||
private Map<String,String> code;
|
||||
|
||||
public String code(String desc){
|
||||
String code = this.getCode().get(desc);
|
||||
if (StringUtils.isNotEmpty(code)){
|
||||
return code;
|
||||
}
|
||||
throw new BadRequestException(this.name()+"对应类型"+desc+"未定义");
|
||||
}
|
||||
public String check(String code){
|
||||
for (Map.Entry<String, String> entry : this.getCode().entrySet()) {
|
||||
if (entry.getValue().equals("code")){
|
||||
return entry.getValue();
|
||||
}
|
||||
}
|
||||
throw new BadRequestException(this.name()+"对应类型"+code+"未定义");
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,8 @@ package org.nl.wms.masterdata_manage.service.material.dao;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -24,7 +26,7 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private Long material_id;
|
||||
private String material_id;
|
||||
|
||||
/**
|
||||
* 物料编码
|
||||
@@ -54,12 +56,12 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 基本计量单位
|
||||
*/
|
||||
private Long base_unit_id;
|
||||
private String base_unit_id;
|
||||
|
||||
/**
|
||||
* 辅助计量单位
|
||||
*/
|
||||
private Long assist_unit_id;
|
||||
private String assist_unit_id;
|
||||
|
||||
/**
|
||||
* 批准文号
|
||||
@@ -74,12 +76,12 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 物料分类标识
|
||||
*/
|
||||
private Long material_type_id;
|
||||
private String material_type_id;
|
||||
|
||||
/**
|
||||
* 长度单位
|
||||
*/
|
||||
private Long len_unit_id;
|
||||
private String len_unit_id;
|
||||
|
||||
/**
|
||||
* 物料长度
|
||||
@@ -99,7 +101,7 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 重量单位
|
||||
*/
|
||||
private Long weight_unit_id;
|
||||
private String weight_unit_id;
|
||||
|
||||
/**
|
||||
* 物料毛重
|
||||
@@ -114,7 +116,7 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 体积单位
|
||||
*/
|
||||
private Long cubage_unit_id;
|
||||
private String cubage_unit_id;
|
||||
|
||||
/**
|
||||
* 物料体积
|
||||
@@ -124,7 +126,7 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private Long create_id;
|
||||
private String create_id;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
@@ -134,12 +136,12 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private String create_time;
|
||||
private Date create_time;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private Long update_id;
|
||||
private String update_id;
|
||||
|
||||
/**
|
||||
* 修改人姓名
|
||||
@@ -149,22 +151,22 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private String update_time;
|
||||
private Date update_time;
|
||||
|
||||
/**
|
||||
* 启用时间
|
||||
*/
|
||||
private String is_used_time;
|
||||
private Date is_used_time;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private String is_used;
|
||||
private Boolean is_used;
|
||||
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private String is_delete;
|
||||
private Boolean is_delete;
|
||||
|
||||
/**
|
||||
* 外部标识
|
||||
@@ -174,7 +176,7 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 产品系列
|
||||
*/
|
||||
private Long product_series;
|
||||
private String product_series;
|
||||
|
||||
private String product_area;
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package org.nl.wms.storage_manage;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/4 20:11
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum IOSEnum {
|
||||
//出入库类型
|
||||
IO_TYPE(MapOf.of("入库","1","出库","2")),
|
||||
//单据类型
|
||||
BILL_TYPE(MapOf.of("生产入库","1","退货入库","2")),
|
||||
//单据类型
|
||||
BILL_STATUS(MapOf.of("创建","1","生成","2")),
|
||||
//单据状态
|
||||
WORK_STATUS(MapOf.of("创建","1","生成","2")),
|
||||
;
|
||||
private Map<String,String> code;
|
||||
|
||||
public String code(String desc){
|
||||
String code = this.getCode().get(desc);
|
||||
if (StringUtils.isNotEmpty(code)){
|
||||
return code;
|
||||
}
|
||||
throw new BadRequestException(this.name()+"对应类型"+desc+"未定义");
|
||||
}
|
||||
public String check(String code){
|
||||
for (Map.Entry<String, String> entry : this.getCode().entrySet()) {
|
||||
if (entry.getValue().equals("code")){
|
||||
return entry.getValue();
|
||||
}
|
||||
}
|
||||
throw new BadRequestException(this.name()+"对应类型"+code+"未定义");
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package org.nl.wms.storage_manage.productmanage.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/4 20:11
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum IOSEnum {
|
||||
IO_TYPE_IN("1","入库"),
|
||||
IO_TYPE_OUT("2","出库"),
|
||||
;
|
||||
private String code;
|
||||
private String desc;
|
||||
}
|
||||
@@ -3,15 +3,13 @@ package org.nl.wms.storage_manage.productmanage.controller.iostorInv;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.storage_manage.productmanage.common.enums.IOSEnum;
|
||||
import org.nl.wms.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||
import org.nl.wms.storage_manage.service.product.ProductInService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -47,7 +45,7 @@ public class StIvtIostorinvCpController {
|
||||
@Log("查询入库单据")
|
||||
@ApiOperation("查询入库单据")
|
||||
public ResponseEntity<Object> query(IostorInvQuery query, PageQuery page) {
|
||||
query.setIo_type(IOSEnum.IO_TYPE_IN.getCode());
|
||||
query.setIo_type(IOSEnum.IO_TYPE.code("入库"));
|
||||
return new ResponseEntity<>(TableDataInfo.build(stIvtIostorinvCpService.page(page.build(), query.build())), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -70,7 +68,7 @@ public class StIvtIostorinvCpController {
|
||||
@Log("新增入库单")
|
||||
@ApiOperation("新增入库单")
|
||||
public ResponseEntity<Object> insertDtl(@RequestBody JSONObject whereJson) {
|
||||
productInService.insertDtl(whereJson);
|
||||
stIvtIostorinvCpService.create(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package org.nl.wms.storage_manage.productmanage.controller.iostorInv;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单分配明细表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/stIvtIostorinvdisdtlCp")
|
||||
public class StIvtIostorinvdisdtlCpController {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||
|
||||
@@ -12,5 +13,15 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
public interface IStIvtIostorinvCpService extends IService<StIvtIostorinvCp> {
|
||||
/**
|
||||
* 创建
|
||||
* @param form
|
||||
*/
|
||||
void create(JSONObject form);
|
||||
|
||||
/**
|
||||
* 更新相关联的表
|
||||
* @param form
|
||||
*/
|
||||
void update(JSONObject form);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -12,5 +15,10 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
public interface IStIvtIostorinvdisCpService extends IService<StIvtIostorinvdisCp> {
|
||||
/**
|
||||
* 批量insert
|
||||
* @param list
|
||||
*/
|
||||
void batchInsert(Collection<StIvtIostorinvdisCp> list);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务类
|
||||
@@ -12,5 +15,19 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
public interface IStIvtIostorinvdtlCpService extends IService<StIvtIostorinvdtlCp> {
|
||||
/**
|
||||
* 批量插入数据库
|
||||
* @param list
|
||||
*/
|
||||
void batchInsert(Collection<StIvtIostorinvdtlCp> list);
|
||||
|
||||
/**
|
||||
* 主单据使用
|
||||
* @param row
|
||||
* @param iostorinvCp_id
|
||||
* @param total_qty
|
||||
* @return
|
||||
*/
|
||||
double create(JSONArray row,String iostorinvCp_id);
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -91,7 +92,7 @@ public class StIvtIostorinvCp implements Serializable {
|
||||
/**
|
||||
* 明细数
|
||||
*/
|
||||
private BigDecimal detail_count;
|
||||
private Integer detail_count;
|
||||
|
||||
/**
|
||||
* 单据状态
|
||||
@@ -116,7 +117,7 @@ public class StIvtIostorinvCp implements Serializable {
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime create_time;
|
||||
private Date create_time;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
@@ -131,7 +132,7 @@ public class StIvtIostorinvCp implements Serializable {
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private LocalDateTime update_time;
|
||||
private Date update_time;
|
||||
|
||||
/**
|
||||
* 分配人
|
||||
|
||||
@@ -40,7 +40,7 @@ public class StIvtIostorinvdisCp implements Serializable {
|
||||
/**
|
||||
* 明细序号
|
||||
*/
|
||||
private BigDecimal seq_no;
|
||||
private Integer seq_no;
|
||||
|
||||
/**
|
||||
* 库区标识
|
||||
|
||||
@@ -35,7 +35,7 @@ public class StIvtIostorinvdtlCp implements Serializable {
|
||||
/**
|
||||
* 明细序号
|
||||
*/
|
||||
private BigDecimal seq_no;
|
||||
private Integer seq_no;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单分配表 Mapper 接口
|
||||
@@ -13,4 +16,5 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
||||
*/
|
||||
public interface StIvtIostorinvdisCpMapper extends BaseMapper<StIvtIostorinvdisCp> {
|
||||
|
||||
Integer batchSave(@Param("entitys") Collection<StIvtIostorinvdisCp> entitys);
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
<?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.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisCpMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -1,8 +1,12 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 Mapper 接口
|
||||
@@ -13,4 +17,6 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
||||
*/
|
||||
public interface StIvtIostorinvdtlCpMapper extends BaseMapper<StIvtIostorinvdtlCp> {
|
||||
|
||||
Integer batchSave(@Param("entitys") Collection<StIvtIostorinvdtlCp> entitys);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
<?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.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdtlCpMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?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.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisCpMapper">
|
||||
|
||||
<insert id="batchSave" parameterType="org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp">
|
||||
insert into st_ivt_iostorinvdis_cp(
|
||||
iostorinvdis_id,
|
||||
iostorinv_id,
|
||||
iostorinvdtl_id,
|
||||
seq_no,
|
||||
sect_id,
|
||||
sect_code,
|
||||
sect_name,
|
||||
struct_id,
|
||||
struct_code,
|
||||
struct_name,
|
||||
material_id,
|
||||
pcsn,
|
||||
quality_scode,
|
||||
ivt_level,
|
||||
is_active,
|
||||
work_statue,
|
||||
task_id,
|
||||
storagevehicle_id,
|
||||
storagevehicle_code,
|
||||
storagevehicle_type,
|
||||
is_issued,
|
||||
qty_unit_id,
|
||||
qty_unit_nam,
|
||||
plan_qt,
|
||||
real_qty,
|
||||
point_id,
|
||||
point_code,
|
||||
point_name)
|
||||
values
|
||||
<foreach item="item" collection="entitys" separator=",">
|
||||
(
|
||||
#{item.iostorinvdis_id},
|
||||
#{item.iostorinv_id},
|
||||
#{item.iostorinvdtl_id},
|
||||
#{item.seq_no},
|
||||
#{item.sect_id},
|
||||
#{item.sect_code},
|
||||
#{item.sect_name},
|
||||
#{item.struct_id},
|
||||
#{item.struct_code},
|
||||
#{item.struct_name},
|
||||
#{item.material_id},
|
||||
#{item.pcsn},
|
||||
#{item.quality_scode},
|
||||
#{item.ivt_level},
|
||||
#{item.is_active},
|
||||
#{item.work_statue},
|
||||
#{item.task_id},
|
||||
#{item.storagevehicle_id},
|
||||
#{item.storagevehicle_code},
|
||||
#{item.storagevehicle_type},
|
||||
#{item.is_issued},
|
||||
#{item.qty_unit_id},
|
||||
#{item.qty_unit_nam},
|
||||
#{item.plan_qt},
|
||||
#{item.real_qty},
|
||||
#{item.point_id},
|
||||
#{item.point_code},
|
||||
#{item.point_name})
|
||||
</foreach>
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -0,0 +1,64 @@
|
||||
<?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.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdtlCpMapper">
|
||||
|
||||
<insert id="batchSave">
|
||||
insert into st_ivt_iostorinvdtl_cp(
|
||||
iostorinvdtl_id,
|
||||
iostorinv_id,
|
||||
seq_no,
|
||||
material_id,
|
||||
pcsn,
|
||||
quality_scode,
|
||||
ivt_level,
|
||||
is_active,
|
||||
bill_status,
|
||||
qty_unit_id,
|
||||
qty_unit_name,
|
||||
plan_qty,
|
||||
real_qty,
|
||||
source_billdtl_id,
|
||||
source_bill_type,
|
||||
source_bill_code,
|
||||
source_bill_table,
|
||||
base_billdtl_id,
|
||||
base_bill_type,
|
||||
base_bill_code,
|
||||
base_bill_table,
|
||||
remark,
|
||||
assign_qty,
|
||||
unassign_qty,
|
||||
remark_ext,
|
||||
unit_weight)
|
||||
values
|
||||
<foreach item="item" collection="entitys" separator=",">
|
||||
(#{item.,iostorinvdtl_id},
|
||||
#{item.iostorinv_id},
|
||||
#{item.seq_no},
|
||||
#{item.material_id},
|
||||
#{item.pcsn},
|
||||
#{item.quality_scode},
|
||||
#{item.ivt_level},
|
||||
#{item.is_active},
|
||||
#{item.bill_status},
|
||||
#{item.qty_unit_id},
|
||||
#{item.qty_unit_name},
|
||||
#{item.plan_qty},
|
||||
#{item.real_qty},
|
||||
#{item.source_billdtl_id},
|
||||
#{item.source_bill_type},
|
||||
#{item.source_bill_code},
|
||||
#{item.source_bill_table},
|
||||
#{item.base_billdtl_id},
|
||||
#{item.base_bill_type},
|
||||
#{item.base_bill_code},
|
||||
#{item.base_bill_table},
|
||||
#{item.remark},
|
||||
#{item.assign_qty},
|
||||
#{item.unassign_qty},
|
||||
#{item.remark_ext},
|
||||
#{item.unit_weight})
|
||||
</foreach>
|
||||
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -1,10 +1,40 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.alibaba.excel.util.CollectionUtils;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import io.jsonwebtoken.lang.Assert;
|
||||
import net.dreamlu.mica.core.utils.BeanUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.masterdata_manage.MasterEnum;
|
||||
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.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper;
|
||||
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.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -17,4 +47,65 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMapper, StIvtIostorinvCp> implements IStIvtIostorinvCpService {
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService;
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void create(JSONObject form) {
|
||||
Assert.notNull(new Object[]{form,form.getJSONArray("tableData")},"请求参数不能为空");
|
||||
JSONArray rows = form.getJSONArray("tableData");
|
||||
// 插入主表
|
||||
StIvtIostorinvCp stIvtIostorinvCp = new StIvtIostorinvCp();
|
||||
packageMstForm(stIvtIostorinvCp,form,false);
|
||||
double total_qty = iostorinvdtlCpService.create(rows, stIvtIostorinvCp.getIostorinv_id());
|
||||
stIvtIostorinvCp.setTotal_qty(new BigDecimal(total_qty));
|
||||
this.save(stIvtIostorinvCp);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(JSONObject form) {
|
||||
Assert.notNull(new Object[]{form,form.getJSONArray("tableData")},"请求参数不能为空");
|
||||
JSONArray rows = form.getJSONArray("tableData");
|
||||
//先删除该单据下的所有明细
|
||||
iostorinvdtlCpService.remove(new QueryWrapper<StIvtIostorinvdtlCp>().eq("iostorinv_id",form.getString("iostorinv_id")));
|
||||
iostorinvdisCpService.remove(new QueryWrapper<StIvtIostorinvdisCp>().eq("iostorinv_id",form.getString("iostorinv_id")));
|
||||
|
||||
StIvtIostorinvCp iostorinvCp = this.getOne(new QueryWrapper<StIvtIostorinvCp>().eq("iostorinv_id", form.getString("iostorinv_id")));
|
||||
packageMstForm(iostorinvCp,form,true);
|
||||
//创建明细
|
||||
double total_qty = iostorinvdtlCpService.create(rows, iostorinvCp.getIostorinv_id());
|
||||
iostorinvCp.setTotal_qty(new BigDecimal(total_qty));
|
||||
// 更新主表
|
||||
this.updateById(iostorinvCp);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private void packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||
if (!isUpdate){
|
||||
stIvtIostorinvCp.setIostorinv_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
stIvtIostorinvCp.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
||||
stIvtIostorinvCp.setBill_status(IOSEnum.BILL_STATUS.code("创建"));
|
||||
stIvtIostorinvCp.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
stIvtIostorinvCp.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
stIvtIostorinvCp.setCreate_time(new Date());
|
||||
}else {
|
||||
stIvtIostorinvCp.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||
stIvtIostorinvCp.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
stIvtIostorinvCp.setUpdate_time(new Date());
|
||||
}
|
||||
stIvtIostorinvCp.setIo_type(IOSEnum.IO_TYPE.code("入库"));
|
||||
stIvtIostorinvCp.setBill_type(IOSEnum.BILL_TYPE.check(whereJson.getString("bill_type")));
|
||||
stIvtIostorinvCp.setBiz_date(whereJson.getString("biz_date").substring(0, 10));
|
||||
stIvtIostorinvCp.setProduct_area(whereJson.getString("product_code"));
|
||||
stIvtIostorinvCp.setDetail_count(rows.size());
|
||||
stIvtIostorinvCp.setRemark(whereJson.getString("remark"));
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,9 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinv
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisCpMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -17,4 +20,10 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdisCpMapper, StIvtIostorinvdisCp> implements IStIvtIostorinvdisCpService {
|
||||
|
||||
@Override
|
||||
public void batchInsert(Collection<StIvtIostorinvdisCp> list) {
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
baseMapper.batchSave(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,29 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import net.dreamlu.mica.core.utils.BeanUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.wms.masterdata_manage.MasterEnum;
|
||||
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.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdtlCpMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -17,4 +36,66 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdtlCpMapper, StIvtIostorinvdtlCp> implements IStIvtIostorinvdtlCpService {
|
||||
|
||||
@Autowired
|
||||
private IMdPbMeasureunitService measureunitService;
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService materialbaseService;
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
||||
|
||||
|
||||
@Override
|
||||
public void batchInsert(Collection<StIvtIostorinvdtlCp> list) {
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
baseMapper.batchSave(list);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double create(JSONArray rows, String iostorinvCp_id) {
|
||||
double total_qty = 0;
|
||||
ArrayList<StIvtIostorinvdtlCp> mingxi = new ArrayList<>();
|
||||
ArrayList<StIvtIostorinvdisCp> fenpei = new ArrayList<>();
|
||||
|
||||
if (rows.size()>0 && StringUtils.isNotEmpty(iostorinvCp_id)){
|
||||
List<MdMeMaterialbase> tmp_materials = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().in("material_code", rows.stream().map(row -> ((JSONObject) row).getString("material_code")).collect(Collectors.toSet())));
|
||||
List<MdPbMeasureunit> tmp_measureUnits = measureunitService.list(new QueryWrapper<MdPbMeasureunit>().in("measure_unit_id", tmp_materials.stream().map(MdMeMaterialbase::getBase_unit_id).collect(Collectors.toSet())));
|
||||
|
||||
Map<String, MdMeMaterialbase> materialMap = tmp_materials.stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_code(), v), HashMap::putAll);
|
||||
Map<String, String> measureUnitMap = tmp_measureUnits.stream().collect(HashMap::new, (k, v) -> k.put(v.getMeasure_unit_id(), v.getUnit_name()), HashMap::putAll);
|
||||
for (int i = 0; i < rows.size(); i++) {
|
||||
// 插入明细表
|
||||
JSONObject row = rows.getJSONObject(i);
|
||||
StIvtIostorinvdtlCp iostorinvdtlCp = new StIvtIostorinvdtlCp();
|
||||
iostorinvdtlCp.setIostorinvdtl_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
iostorinvdtlCp.setIostorinv_id(iostorinvCp_id);
|
||||
iostorinvdtlCp.setSeq_no(i + 1);
|
||||
MdMeMaterialbase material = materialMap.get(row.get("material_code"));
|
||||
iostorinvdtlCp.setMaterial_id(material.getMaterial_id());
|
||||
iostorinvdtlCp.setPcsn(row.getString("pcsn"));
|
||||
iostorinvdtlCp.setBill_status(IOSEnum.BILL_STATUS.code("创建"));
|
||||
iostorinvdtlCp.setQuality_scode(MasterEnum.MATERIAL_QUALITY.code("一等品"));
|
||||
iostorinvdtlCp.setQty_unit_id(material.getBase_unit_id());
|
||||
iostorinvdtlCp.setQty_unit_name(measureUnitMap.get(material.getBase_unit_id()));
|
||||
iostorinvdtlCp.setAssign_qty(new BigDecimal(row.getDoubleValue("plan_qty")));
|
||||
iostorinvdtlCp.setPlan_qty(iostorinvdtlCp.getAssign_qty());
|
||||
mingxi.add(iostorinvdtlCp);
|
||||
String tmp_plan_qty = row.getString("plan_qty");
|
||||
if (!StringUtils.isEmpty(tmp_plan_qty)){
|
||||
total_qty += Double.parseDouble(tmp_plan_qty);
|
||||
}
|
||||
//分配表
|
||||
StIvtIostorinvdisCp stIvtIostorinvdisCp = BeanUtil.copy(iostorinvdtlCp, StIvtIostorinvdisCp.class);
|
||||
stIvtIostorinvdisCp.setIostorinvdis_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
stIvtIostorinvdisCp.setSeq_no(1);
|
||||
stIvtIostorinvdisCp.setWork_status(IOSEnum.WORK_STATUS.code("创建"));
|
||||
fenpei.add(stIvtIostorinvdisCp);
|
||||
}
|
||||
}
|
||||
if (!com.alibaba.excel.util.CollectionUtils.isEmpty(mingxi)){
|
||||
this.batchInsert(mingxi);
|
||||
iostorinvdisCpService.batchInsert(fenpei);
|
||||
}
|
||||
return total_qty;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user