Merge remote-tracking branch 'origin/master'
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.mps_manage.ordermanage.controller.saleOrder;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 生产订单表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-05-25
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/mpsSaleOrder")
|
||||
public class MpsSaleOrderController {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.mps_manage.ordermanage.service.saleOrder;
|
||||
|
||||
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 生产订单表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-05-25
|
||||
*/
|
||||
public interface IMpsSaleOrderService extends IService<MpsSaleOrder> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
package org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 生产订单表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-05-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("mps_sale_order")
|
||||
public class MpsSaleOrder implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 销售单标识
|
||||
*/
|
||||
private Long sale_id;
|
||||
|
||||
/**
|
||||
* 销售单号
|
||||
*/
|
||||
private String sale_code;
|
||||
|
||||
/**
|
||||
* 明细序号
|
||||
*/
|
||||
private BigDecimal seq_no;
|
||||
|
||||
/**
|
||||
* 销售单类型
|
||||
*/
|
||||
private String sale_type;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private Long material_id;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 销售数量
|
||||
*/
|
||||
private BigDecimal sale_qty;
|
||||
|
||||
/**
|
||||
* 生产顺序
|
||||
*/
|
||||
private BigDecimal produce_seq;
|
||||
|
||||
/**
|
||||
* 客户标识
|
||||
*/
|
||||
private Long cust_id;
|
||||
|
||||
/**
|
||||
* 客户编码
|
||||
*/
|
||||
private String cust_code;
|
||||
|
||||
/**
|
||||
* 客户名称
|
||||
*/
|
||||
private String cust_name;
|
||||
|
||||
/**
|
||||
* 计量单位标识
|
||||
*/
|
||||
private Long qty_unit_id;
|
||||
|
||||
/**
|
||||
* 计划交期
|
||||
*/
|
||||
private String plandeliver_date;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private Long create_id;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
*/
|
||||
private String create_name;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 提交人
|
||||
*/
|
||||
private Long audit_optid;
|
||||
|
||||
/**
|
||||
* 提交时间
|
||||
*/
|
||||
private String audit_time;
|
||||
|
||||
/**
|
||||
* 提交人姓名
|
||||
*/
|
||||
private String audit_optname;
|
||||
|
||||
/**
|
||||
* 确认人
|
||||
*/
|
||||
private Long confirm_optid;
|
||||
|
||||
/**
|
||||
* 确认人姓名
|
||||
*/
|
||||
private String confirm_optname;
|
||||
|
||||
/**
|
||||
* 确认时间
|
||||
*/
|
||||
private String confirm_time;
|
||||
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private String is_delete;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 车间标识
|
||||
*/
|
||||
private Long workshop_id;
|
||||
|
||||
/**
|
||||
* 生产数量
|
||||
*/
|
||||
private BigDecimal product_qty;
|
||||
|
||||
/**
|
||||
* 预入库数量
|
||||
*/
|
||||
private BigDecimal instor_qty;
|
||||
|
||||
/**
|
||||
* 发货数量
|
||||
*/
|
||||
private BigDecimal sendout_qty;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.mapper;
|
||||
|
||||
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 生产订单表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-05-25
|
||||
*/
|
||||
public interface MpsSaleOrderMapper extends BaseMapper<MpsSaleOrder> {
|
||||
|
||||
}
|
||||
@@ -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.mps_manage.ordermanage.service.saleOrder.dao.mapper.MpsSaleOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.mps_manage.ordermanage.service.saleOrder.impl;
|
||||
|
||||
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder;
|
||||
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.mapper.MpsSaleOrderMapper;
|
||||
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 生产订单表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-05-25
|
||||
*/
|
||||
@Service
|
||||
public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper, MpsSaleOrder> implements IMpsSaleOrderService {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package org.nl.wms.storage_manage.productmanage.controller.iostorInv;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "成品出库")
|
||||
@RequestMapping("/api/productOut")
|
||||
@Slf4j
|
||||
public class IStivtlostorivnCpOutController {
|
||||
|
||||
@Autowired
|
||||
private IStIvtIostorinvCpOutService iStIvtIostorinvCpOutService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询出库单")
|
||||
@ApiOperation("查询出库单")
|
||||
public ResponseEntity<Object> query(IostorInvQuery query, PageQuery page){
|
||||
return new ResponseEntity<>(iStIvtIostorinvCpOutService.pageQuery(query,page),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("创建出库单")
|
||||
@ApiOperation("创建出库单")
|
||||
public ResponseEntity<Object> create(@RequestBody JSONObject whereJson){
|
||||
iStIvtIostorinvCpOutService.create(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
@Log("修改出库单")
|
||||
@ApiOperation("修改出库单")
|
||||
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson){
|
||||
iStIvtIostorinvCpOutService.update(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
@Log("删除出库单")
|
||||
@ApiOperation("删除出库单")
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids){
|
||||
iStIvtIostorinvCpOutService.delete(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getIosInvDtl")
|
||||
@Log("获取明细")
|
||||
@ApiOperation("获取明细")
|
||||
public ResponseEntity<Object> getIosInvDtl(@RequestBody JSONObject whereJson){
|
||||
return new ResponseEntity<>(iStIvtIostorinvCpOutService.getIosInvDtl(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getIosInvDis")
|
||||
@Log("获取分配明细")
|
||||
@ApiOperation("获取明细")
|
||||
public ResponseEntity<Object> getIosInvDis(@RequestBody JSONObject whereJson){
|
||||
return new ResponseEntity<>(iStIvtIostorinvCpOutService.getIosInvDis(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出库单主表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
public interface IStIvtIostorinvCpOutService extends IService<StIvtIostorinvCp> {
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param query,page /
|
||||
* @return JSONObject
|
||||
*/
|
||||
Object pageQuery(IostorInvQuery query, PageQuery page);
|
||||
|
||||
/**
|
||||
* 创建
|
||||
* @param form /
|
||||
*/
|
||||
void create(JSONObject form);
|
||||
|
||||
/**
|
||||
* 更新相关联的表
|
||||
* @param form /
|
||||
*/
|
||||
void update(JSONObject form);
|
||||
|
||||
/**
|
||||
* 查询出出库单明细
|
||||
* @param whereJson
|
||||
* {
|
||||
* "bill_code": 单据号
|
||||
* "iostorinv_id": 主表标识
|
||||
* }
|
||||
* @return List
|
||||
* {
|
||||
* "明细表所有字段"
|
||||
* "material_code": 物料编码
|
||||
* "material_name": 物料名称
|
||||
* "material_spec": 物料批次
|
||||
* }
|
||||
*/
|
||||
List getIosInvDtl(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 查询出出库单分配明细
|
||||
* @param whereJson
|
||||
* {
|
||||
* "iostorinvdtl_id": 明细表标识
|
||||
* "iostorinv_id": 主表标识
|
||||
* }
|
||||
*
|
||||
* @return List
|
||||
* {
|
||||
* "分配表所有字段"
|
||||
* "bucketunique":箱号
|
||||
* "qty": 数量
|
||||
* "material_code": 物料编码
|
||||
* "material_name": 物料名称
|
||||
* "material_spec": 物料批次
|
||||
* }
|
||||
*/
|
||||
List getIosInvDis(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @param ids
|
||||
* {
|
||||
* 主表id..
|
||||
* }
|
||||
*/
|
||||
void delete(Long[] ids);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,275 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import io.jsonwebtoken.lang.Assert;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.publish.event.PointEvent;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
|
||||
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.MdPbBucketrecord;
|
||||
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.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.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
||||
import org.nl.wms.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.*;
|
||||
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.StIvtIostorinvdisdtlCp;
|
||||
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.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService;
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出库单主表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
@Service
|
||||
public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCpMapper, StIvtIostorinvCp> implements IStIvtIostorinvCpOutService {
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService; // 成品出入库明细表服务
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdisCpService iostorinvdisCpService; // 成品出入库分配表服务
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdisdtlCpService iStIvtIostorinvdisdtlCpService; // 成品出入库分配明细表服务
|
||||
|
||||
@Autowired
|
||||
protected IStIvtBsrealstorattrService stIvtBsrealstorattrService; // 实物属性表表服务
|
||||
|
||||
@Autowired
|
||||
protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息表服务
|
||||
|
||||
@Autowired
|
||||
protected IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务
|
||||
|
||||
@Autowired
|
||||
protected DivRuleCpService divRuleCpService; // 成品分配规则服务类
|
||||
|
||||
@Autowired
|
||||
protected IStIvtStructattrService iStIvtStructattrService; // 仓位属性服务
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
|
||||
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService; // 点位服务
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructivtCpService iStIvtStructivtCpService; // 库存服务
|
||||
|
||||
@Autowired
|
||||
protected IMdPbBucketrecordService iMdPbBucketrecordService; // 包装箱记录表服务
|
||||
|
||||
@Override
|
||||
public Object pageQuery(IostorInvQuery query, PageQuery page) {
|
||||
// 查询条件
|
||||
query.setIo_type(IOSEnum.IO_TYPE.code("出库"));
|
||||
page.setSort("bill_code,DESC");
|
||||
|
||||
// 分页查询
|
||||
Page<StIvtIostorinvCp> pageQuery = this.page(page.build(), query.build());
|
||||
TableDataInfo<StIvtIostorinvCp> build = TableDataInfo.build(pageQuery);
|
||||
|
||||
return build;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void create(JSONObject form) {
|
||||
|
||||
JSONArray rows = form.getJSONArray("tableData");
|
||||
if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空");
|
||||
|
||||
// 调用主表 插入/更新方法
|
||||
StIvtIostorinvCp stIvtIostorinvCp = packageMstForm(new StIvtIostorinvCp(), form, false);
|
||||
// 插入主表
|
||||
this.save(stIvtIostorinvCp);
|
||||
|
||||
// 调用明细表 插入/更新方法
|
||||
iostorinvdtlCpService.create(rows, stIvtIostorinvCp.getIostorinv_id());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(JSONObject form) {
|
||||
|
||||
JSONArray rows = form.getJSONArray("tableData");
|
||||
if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("明细不能为空");
|
||||
|
||||
StIvtIostorinvCp iostorinvCp = this.getOne(new QueryWrapper<StIvtIostorinvCp>().eq("iostorinv_id", form.getString("iostorinv_id")));
|
||||
packageMstForm(iostorinvCp,form,true);
|
||||
|
||||
//创建明细
|
||||
iostorinvdtlCpService.create(rows, iostorinvCp.getIostorinv_id());
|
||||
// 更新主表
|
||||
this.updateById(iostorinvCp);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List getIosInvDtl(JSONObject whereJson) {
|
||||
// 查询主表明细
|
||||
List<Map> maps = iostorinvdtlCpService.queryInvDtlByInv(whereJson);
|
||||
return maps;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List getIosInvDis(JSONObject whereJson) {
|
||||
|
||||
// 查询分配表
|
||||
List<Map> maps = iostorinvdisCpService.queryInvDisByInvdtl(whereJson);
|
||||
return maps;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void delete(Long[] ids) {
|
||||
|
||||
for (Long id : ids) {
|
||||
StIvtIostorinvCp dao = this.getOne(new QueryWrapper<StIvtIostorinvCp>().eq("iostorinv_id", id));
|
||||
dao.setIs_delete(true);
|
||||
|
||||
this.updateById(dao);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||
if (!isUpdate){
|
||||
// 新增
|
||||
stIvtIostorinvCp.setIostorinv_id(IdUtil.getStringId());
|
||||
stIvtIostorinvCp.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
||||
stIvtIostorinvCp.setIo_type(IOSEnum.IO_TYPE.code("出库"));
|
||||
stIvtIostorinvCp.setBuss_type(whereJson.getString("bill_type"));
|
||||
stIvtIostorinvCp.setBill_type(stIvtIostorinvCp.getBuss_type());
|
||||
stIvtIostorinvCp.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||
stIvtIostorinvCp.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
stIvtIostorinvCp.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
stIvtIostorinvCp.setCreate_time(new Date());
|
||||
stIvtIostorinvCp.setIs_delete(false);
|
||||
// TODO 暂时写死
|
||||
stIvtIostorinvCp.setSysdeptid("111");
|
||||
stIvtIostorinvCp.setSyscompanyid("111");
|
||||
}else {
|
||||
|
||||
// 修改
|
||||
stIvtIostorinvCp.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||
stIvtIostorinvCp.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
stIvtIostorinvCp.setUpdate_time(new Date());
|
||||
}
|
||||
|
||||
stIvtIostorinvCp.setBiz_date(whereJson.getString("biz_date").substring(0,10));
|
||||
// 获取仓库信息
|
||||
QueryWrapper<StIvtBsrealstorattr> wrapper = new QueryWrapper<>();
|
||||
wrapper.lambda()
|
||||
.eq(StIvtBsrealstorattr::getStor_id,whereJson.getString("stor_id"))
|
||||
.eq(StIvtBsrealstorattr::getIs_used, true);
|
||||
|
||||
StIvtBsrealstorattr bsrealDao = stIvtBsrealstorattrService.getOne(wrapper);
|
||||
if (ObjectUtil.isEmpty(bsrealDao)) throw new BadRequestException("仓库不存在或未启用!");
|
||||
|
||||
stIvtIostorinvCp.setStor_id(bsrealDao.getStor_id());
|
||||
stIvtIostorinvCp.setStor_code(bsrealDao.getStor_code());
|
||||
stIvtIostorinvCp.setStor_name(bsrealDao.getStor_name());
|
||||
stIvtIostorinvCp.setTotal_qty(whereJson.getBigDecimal("total_qty"));
|
||||
stIvtIostorinvCp.setDetail_count(rows.size());
|
||||
stIvtIostorinvCp.setRemark(whereJson.getString("remark"));
|
||||
|
||||
return stIvtIostorinvCp;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public void updateMst(String iostorinv_id) {
|
||||
/*
|
||||
更新主表
|
||||
*/
|
||||
|
||||
StIvtIostorinvCp mstDao = this.baseMapper.selectOne(
|
||||
new QueryWrapper<StIvtIostorinvCp>().lambda()
|
||||
.eq(StIvtIostorinvCp::getIostorinv_id, iostorinv_id)
|
||||
);
|
||||
mstDao.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setUpdate_time(new Date());
|
||||
mstDao.setDis_id(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setDis_name(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setDis_time(DateUtil.now());
|
||||
|
||||
// 查询主表下所有明细
|
||||
List<StIvtIostorinvdtlCp> dtlDaoList = iostorinvdtlCpService.list(
|
||||
new QueryWrapper<StIvtIostorinvdtlCp>().lambda()
|
||||
.eq(StIvtIostorinvdtlCp::getIostorinv_id, iostorinv_id)
|
||||
);
|
||||
|
||||
// 判断是否都为分配完
|
||||
boolean is_true = dtlDaoList
|
||||
.stream()
|
||||
.allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完")));
|
||||
|
||||
if (is_true) {
|
||||
// 更新主表为分配完
|
||||
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
||||
} else {
|
||||
// 更新主表为分配中
|
||||
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中"));
|
||||
}
|
||||
|
||||
// 判断是否为生成
|
||||
boolean is_create = dtlDaoList
|
||||
.stream()
|
||||
.allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("生成")));
|
||||
|
||||
if (is_create) mstDao.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||
|
||||
this.updateById(mstDao);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -389,8 +389,10 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
iStIvtStructattrService.updateById(attrDao);
|
||||
|
||||
// 4.更新库存
|
||||
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(disDao.getIostorinvdtl_id());
|
||||
|
||||
disDao.setStruct_id(attrDao.getStruct_id());
|
||||
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao,ChangeIvtUtil.ADDWAREHOUSING_QTY));
|
||||
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao,ChangeIvtUtil.ADDWAREHOUSING_QTY,dtlDao.getSource_billdtl_id()));
|
||||
|
||||
}
|
||||
|
||||
@@ -448,7 +450,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
);
|
||||
|
||||
// 更新库存
|
||||
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao,ChangeIvtUtil.SUBWAREHOUSING_QTY));
|
||||
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao,ChangeIvtUtil.SUBWAREHOUSING_QTY,null));
|
||||
|
||||
// 4.更新分配
|
||||
iostorinvdisCpService.updateById(
|
||||
@@ -585,7 +587,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
}
|
||||
|
||||
// 2)更新库存
|
||||
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(dao,ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY));
|
||||
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(dao,ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY,null));
|
||||
|
||||
// 3)解锁终点
|
||||
unLockNext(dao.getStruct_id(),dao.getStoragevehicle_code());
|
||||
@@ -738,7 +740,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
this.updateById(mstDao);
|
||||
}
|
||||
|
||||
public JSONObject ivtDataParam(StIvtIostorinvdisCp disDao,String type) {
|
||||
public JSONObject ivtDataParam(StIvtIostorinvdisCp disDao,String change_type,String sale_id) {
|
||||
JSONObject ivtParam = new JSONObject();
|
||||
ivtParam.put("struct_id", disDao.getStruct_id());
|
||||
ivtParam.put("material_id", disDao.getMaterial_id());
|
||||
@@ -746,7 +748,8 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
ivtParam.put("quality_scode", disDao.getQuality_scode());
|
||||
ivtParam.put("ivt_level", disDao.getIvt_level());
|
||||
ivtParam.put("change_qty", disDao.getReal_qty());
|
||||
ivtParam.put("change_type", type);
|
||||
ivtParam.put("change_type", change_type);
|
||||
ivtParam.put("sale_id", sale_id);
|
||||
|
||||
return ivtParam;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ public interface IStIvtStructivtCpService extends IService<StIvtStructivtCp> {
|
||||
* ivt_level:库存等级
|
||||
* change_qty:变动数量
|
||||
* change_type:变动类型
|
||||
* sale_id: 生产订单标识
|
||||
* }
|
||||
*/
|
||||
void UpdateIvt(JSONObject json);
|
||||
|
||||
@@ -101,6 +101,7 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
|
||||
dao.setIvt_qty(BigDecimal.valueOf(0));
|
||||
dao.setWarehousing_qty(json.getBigDecimal("change_qty"));
|
||||
dao.setQty_unit_id(materDao.getBase_unit_id());
|
||||
dao.setSale_id(json.getString("sale_id"));
|
||||
this.save(dao);
|
||||
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user