feat: 改切管理
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplandtl;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
public interface IStIvtProductplandtlService extends IService<StIvtProductplandtl> {
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst;
|
||||
import org.nl.wms.st.instor.service.dto.RecutPlanPageParam;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
public interface IStIvtProductplanmstService extends IService<StIvtProductplanmst> {
|
||||
IPage<StIvtProductplanmst> returnCutplanPage(IPage<StIvtProductplanmst> pages, RecutPlanPageParam param);
|
||||
|
||||
JSONArray getOutBillDtl(Map param);
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
@Data
|
||||
@TableName("st_ivt_productplandtl")
|
||||
public class StIvtProductplandtl implements Serializable {
|
||||
/**
|
||||
* 改切计划明细标识
|
||||
*/
|
||||
@TableId
|
||||
private String plandtl_id;
|
||||
|
||||
/**
|
||||
* 改切计划标识
|
||||
*/
|
||||
private String plan_id;
|
||||
|
||||
/**
|
||||
* 明细序号
|
||||
*/
|
||||
private BigDecimal seq_no;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
/**
|
||||
* 批次
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 木箱唯一码
|
||||
*/
|
||||
private String package_box_sn;
|
||||
|
||||
/**
|
||||
* 数量计量单位标识
|
||||
*/
|
||||
private String qty_unit_id;
|
||||
|
||||
/**
|
||||
* 数量计量单位名称
|
||||
*/
|
||||
private String qty_unit_name;
|
||||
|
||||
/**
|
||||
* 重量
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 不合格描述
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 改切计划主表实体类
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
@TableName("st_ivt_productplanmst")
|
||||
@Data
|
||||
public class StIvtProductplanmst implements Serializable {
|
||||
/**
|
||||
* 改切计划标识
|
||||
*/
|
||||
@TableId
|
||||
private String plan_id;
|
||||
|
||||
/**
|
||||
* 改切计划编号
|
||||
*/
|
||||
private String plan_code;
|
||||
|
||||
/**
|
||||
* 业务日期
|
||||
*/
|
||||
private String biz_date;
|
||||
|
||||
/**
|
||||
* 仓库标识
|
||||
*/
|
||||
private String stor_id;
|
||||
|
||||
/**
|
||||
* 仓库编码
|
||||
*/
|
||||
private String stor_code;
|
||||
|
||||
/**
|
||||
* 仓库名称
|
||||
*/
|
||||
private String stor_name;
|
||||
|
||||
/**
|
||||
* 总数量
|
||||
*/
|
||||
private BigDecimal total_qty;
|
||||
|
||||
/**
|
||||
* 明细数
|
||||
*/
|
||||
private BigDecimal detail_count;
|
||||
|
||||
/**
|
||||
* 单据状态
|
||||
*/
|
||||
private String bill_status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 制单人
|
||||
*/
|
||||
private String input_optid;
|
||||
|
||||
/**
|
||||
* 制单人姓名
|
||||
*/
|
||||
private String input_optname;
|
||||
|
||||
/**
|
||||
* 制单时间
|
||||
*/
|
||||
private String input_time;
|
||||
|
||||
/**
|
||||
* 审核人
|
||||
*/
|
||||
private String update_optid;
|
||||
|
||||
/**
|
||||
* 审核人姓名
|
||||
*/
|
||||
private String update_optname;
|
||||
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
private String update_time;
|
||||
|
||||
/**
|
||||
* 确认人
|
||||
*/
|
||||
private String confirm_optid;
|
||||
|
||||
/**
|
||||
* 确认人姓名
|
||||
*/
|
||||
private String confirm_optname;
|
||||
|
||||
/**
|
||||
* 确认时间
|
||||
*/
|
||||
private String confirm_time;
|
||||
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private String is_delete = "0";
|
||||
|
||||
/**
|
||||
* 外部标识
|
||||
*/
|
||||
private String ext_code;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplandtl;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
public interface StIvtProductplandtlMapper extends BaseMapper<StIvtProductplandtl> {
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?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.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplandtlMapper">
|
||||
</mapper>
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst;
|
||||
import org.nl.wms.st.instor.service.dto.RecutPlanPageParam;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
public interface StIvtProductplanmstMapper extends BaseMapper<StIvtProductplanmst> {
|
||||
IPage<StIvtProductplanmst> returnCutplanPage(IPage<StIvtProductplanmst> pages, RecutPlanPageParam param);
|
||||
|
||||
JSONArray getOutBillDtl(Map param);
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
<?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.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplanmstMapper">
|
||||
<select id="returnCutplanPage"
|
||||
resultType="org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst">
|
||||
SELECT
|
||||
mst.plan_id,
|
||||
mst.plan_code,
|
||||
mst.biz_date,
|
||||
mst.stor_id,
|
||||
mst.stor_code,
|
||||
mst.stor_name,
|
||||
mst.total_qty,
|
||||
mst.detail_count,
|
||||
mst.bill_status,
|
||||
mst.remark,
|
||||
mst.input_optid,
|
||||
mst.input_optname,
|
||||
mst.input_time,
|
||||
mst.update_optid,
|
||||
mst.update_optname,
|
||||
mst.update_time,
|
||||
mst.confirm_optid,
|
||||
mst.confirm_optname,
|
||||
mst.confirm_time,
|
||||
mst.is_delete,
|
||||
mst.ext_code
|
||||
FROM
|
||||
st_ivt_productplanmst mst
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
plan_id
|
||||
FROM
|
||||
st_ivt_productplandtl dtl
|
||||
WHERE
|
||||
1=1
|
||||
<if test="param.pcsn != null and param.pcsn != ''">
|
||||
AND dtl.pcsn = #{param.pcsn}
|
||||
</if>
|
||||
GROUP BY plan_id
|
||||
) a ON mst.plan_id = a.plan_id
|
||||
WHERE
|
||||
1 = 1
|
||||
AND mst.is_delete = '0'
|
||||
<if test="param.in_stor_id != null and !param.in_stor_id.isEmpty()">
|
||||
AND mst.stor_id IN
|
||||
<foreach collection="param.in_stor_id" item="code" separator="," open="(" close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="param.bill_code != null and param.bill_code != ''">
|
||||
AND mst.plan_code LIKE '%${param.bill_code}%'
|
||||
</if>
|
||||
<if test="param.stor_id != null and param.stor_id != ''">
|
||||
AND mst.stor_id = #{param.stor_id}
|
||||
</if>
|
||||
<if test="param.bill_status != null and param.bill_status != ''">
|
||||
AND mst.bill_status = #{param.bill_status}
|
||||
</if>
|
||||
<if test="param.begin_time != null and param.begin_time != ''">
|
||||
AND mst.input_time <![CDATA[ >= ]]> #{param.begin_time}
|
||||
</if>
|
||||
<if test="param.end_time != null and param.end_time != ''">
|
||||
AND mst.input_time <![CDATA[ <= ]]> #{param.end_time}
|
||||
</if>
|
||||
ORDER BY plan_id desc
|
||||
</select>
|
||||
<select id="getOutBillDtl" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
dtl.*,
|
||||
mater.material_code,
|
||||
mater.material_name,
|
||||
sub.package_box_sn
|
||||
FROM
|
||||
st_ivt_productplandtl dtl
|
||||
LEFT JOIN st_ivt_productplanmst mst ON mst.plan_id = dtl.plan_id
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = dtl.material_id
|
||||
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.sap_pcsn = dtl.pcsn
|
||||
WHERE
|
||||
1 = 1
|
||||
<if test="plan_id != null and plan_id != ''">
|
||||
AND dtl.plan_id = #{plan_id}
|
||||
</if>
|
||||
<if test="scrapdtl_id != null and scrapdtl_id != ''">
|
||||
AND dtl.scrapdtl_id = #{scrapdtl_id}
|
||||
</if>
|
||||
<if test="status != null and status != ''">
|
||||
AND dtl.status = #{status}
|
||||
</if>
|
||||
order by sub.package_box_sn
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtProductplandtlService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplandtl;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplandtlMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class StIvtProductplandtlServiceImpl extends ServiceImpl<StIvtProductplandtlMapper, StIvtProductplandtl> implements IStIvtProductplandtlService {
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtProductplanmstService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplanmstMapper;
|
||||
import org.nl.wms.st.instor.service.dto.RecutPlanPageParam;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class StIvtProductplanmstServiceImpl extends ServiceImpl<StIvtProductplanmstMapper, StIvtProductplanmst> implements IStIvtProductplanmstService {
|
||||
@Override
|
||||
public IPage<StIvtProductplanmst> returnCutplanPage(IPage<StIvtProductplanmst> pages, RecutPlanPageParam param) {
|
||||
return this.baseMapper.returnCutplanPage(pages, param);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getOutBillDtl(Map param) {
|
||||
return this.baseMapper.getOutBillDtl(param);
|
||||
}
|
||||
}
|
||||
@@ -3,8 +3,11 @@ package org.nl.wms.st.instor.rest;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.nl.wms.st.instor.service.RecutPlanService;
|
||||
import org.nl.wms.st.instor.service.dto.RecutPlanPageParam;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@@ -22,9 +25,8 @@ public class RecutPlanController {
|
||||
|
||||
@GetMapping
|
||||
@Log("查询改切计划")
|
||||
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(recutPlanService.pageQuery(whereJson, page), HttpStatus.OK);
|
||||
public ResponseEntity<Object> query(RecutPlanPageParam whereJson, PageQuery page) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(recutPlanService.pageQuery(whereJson, page)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getOutBillDtl")
|
||||
@@ -59,8 +61,7 @@ public class RecutPlanController {
|
||||
}
|
||||
|
||||
@PostMapping("/createBill")
|
||||
@Log("创建出库单")
|
||||
|
||||
@Log("改切审核-创建出库单")
|
||||
public ResponseEntity<Object> createBill(@RequestBody JSONObject whereJson) {
|
||||
recutPlanService.createBill(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
@@ -68,7 +69,6 @@ public class RecutPlanController {
|
||||
|
||||
@PostMapping("/confirm")
|
||||
@Log("强制确认")
|
||||
|
||||
public ResponseEntity<Object> auditOut(@RequestBody JSONObject whereJson) {
|
||||
recutPlanService.auditOut(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
|
||||
@@ -2,6 +2,10 @@ package org.nl.wms.st.instor.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.st.instor.service.dto.RecutPlanPageParam;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -14,7 +18,7 @@ public interface RecutPlanService {
|
||||
* @param page 分页参数
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Map<String, Object> pageQuery(Map whereJson, Pageable page);
|
||||
IPage<StIvtProductplanmst> pageQuery(RecutPlanPageParam whereJson, PageQuery page);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.nl.wms.st.instor.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 改切分页查询对象
|
||||
*
|
||||
* @Author: lyd
|
||||
* @Date: 2025/7/17
|
||||
*/
|
||||
@Data
|
||||
public class RecutPlanPageParam implements Serializable {
|
||||
private List<String> in_stor_id;
|
||||
private String bill_code;
|
||||
private String stor_id;
|
||||
private String bill_status;
|
||||
private String begin_time;
|
||||
private String end_time;
|
||||
private String pcsn;
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package org.nl.wms.st.instor.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -9,7 +8,6 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -18,8 +16,12 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.pdm.storagevehicleext.service.IMdPbStoragevehicleextService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtMoveinvService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtMoveinvdtlService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtMoveinv;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtMoveinvdtl;
|
||||
import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr;
|
||||
@@ -31,10 +33,7 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.WqlUtil;
|
||||
import org.nl.system.service.dict.ISysDictService;
|
||||
import org.nl.system.service.dict.dao.Dict;
|
||||
import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.st.inbill.service.StorPublicService;
|
||||
import org.nl.wms.st.instor.service.HandMoveStorService;
|
||||
@@ -42,7 +41,6 @@ import org.nl.wms.st.instor.service.dto.MoveInvPageParam;
|
||||
import org.nl.wms.st.instor.service.dto.MoveStockInfoDto;
|
||||
import org.nl.wms.st.instor.service.vo.MoveChooseMaterialVo;
|
||||
import org.nl.wms.st.instor.task.HandMoveStorAcsTask;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -73,6 +71,8 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
|
||||
private final IStIvtMoveinvdtlService moveinvdtlService;
|
||||
private final IMdPbStoragevehicleextService storagevehicleextService;
|
||||
private final ISysDictService dictService;
|
||||
private final IStIvtIostorinvService iostorinvService;
|
||||
private final IStIvtIostorinvdtlService iostorinvdtlService;
|
||||
|
||||
@Override
|
||||
public IPage<StIvtMoveinv> pageQuery(MoveInvPageParam param, PageQuery page) {
|
||||
@@ -678,6 +678,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
|
||||
from_start.put("lock_type", "1");
|
||||
from_start.put("storagevehicle_code", jo.getString("storagevehicle_code"));
|
||||
from_start.put("struct_id", jo.getString("turnout_struct_id"));
|
||||
// hint: 修改????
|
||||
if (jo.getString("turnout_sect_code").equals("BZC01")) {
|
||||
storPublicService.updateStructAndPointTwo(from_start);
|
||||
} else {
|
||||
@@ -689,6 +690,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
|
||||
from_end.put("struct_id", jo.getString("turnin_struct_id"));
|
||||
from_end.put("is_free", "0");
|
||||
from_end.put("storagevehicle_code", jo.getString("storagevehicle_code"));
|
||||
// hint: 修改????
|
||||
if (jo.getString("turnout_sect_code").equals("BZC01")) {
|
||||
storPublicService.updateStructAndPointTwo(from_end);
|
||||
} else {
|
||||
@@ -929,6 +931,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
|
||||
for (int i = 0; i < stockTaskInfo.size(); i++) {
|
||||
MoveStockInfoDto moveStockInfoDto = stockTaskInfo.get(i);
|
||||
String task_id = moveStockInfoDto.getTask_id();
|
||||
// 将任务更新为起点终点确定,准备下发ACS
|
||||
boolean update = taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.set(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode())
|
||||
.eq(SchBaseTask::getTask_id, task_id));
|
||||
@@ -987,40 +990,38 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
|
||||
* @param iostorinv_id
|
||||
*/
|
||||
void updateMststatus(String iostorinv_id) {
|
||||
//出库主表
|
||||
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
|
||||
//出库明细表
|
||||
WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl");
|
||||
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
//查询主表信息
|
||||
JSONObject jo_mst = wo_mst.query("iostorinv_id = '" + iostorinv_id + "'").uniqueResult(0);
|
||||
jo_mst.put("update_optid", currentUserId + "");
|
||||
jo_mst.put("update_optname", nickName);
|
||||
jo_mst.put("update_time", now);
|
||||
StIvtIostorinv jo_mst = iostorinvService.getById(iostorinv_id);
|
||||
jo_mst.setUpdate_optid(currentUserId);
|
||||
jo_mst.setUpdate_optname(nickName);
|
||||
jo_mst.setUpdate_time(now);
|
||||
//更新主表状态
|
||||
JSONArray dtls_40 = wo_dtl.query("bill_status='40' and iostorinv_id = '" + iostorinv_id + "'").getResultJSONArray(0);
|
||||
List<StIvtIostorinvdtl> dtls_40 = iostorinvdtlService.list(new LambdaQueryWrapper<StIvtIostorinvdtl>()
|
||||
.eq(StIvtIostorinvdtl::getBill_status, "40")
|
||||
.eq(StIvtIostorinvdtl::getIostorinv_id, iostorinv_id));
|
||||
//已分配完明细数小于总明细数
|
||||
if (dtls_40.size() < jo_mst.getInteger("detail_count")) {
|
||||
|
||||
JSONArray dtls_30 = wo_dtl.query("bill_status='30' and iostorinv_id = '" + iostorinv_id + "'").getResultJSONArray(0);
|
||||
if (dtls_40.size() < jo_mst.getDetail_count().intValue()) {
|
||||
List<StIvtIostorinvdtl> dtls_30 = iostorinvdtlService.list(new LambdaQueryWrapper<StIvtIostorinvdtl>()
|
||||
.eq(StIvtIostorinvdtl::getBill_status, "30")
|
||||
.eq(StIvtIostorinvdtl::getIostorinv_id, iostorinv_id));
|
||||
//存在分配完的明细
|
||||
if (dtls_40.size() != 0) {//分配中明细数不为0
|
||||
jo_mst.put("bill_status", "30");
|
||||
jo_mst.setBill_status("30");
|
||||
} else if (dtls_40.size() == 0) {
|
||||
//不存在分配中和分配完的明细
|
||||
if (dtls_30.size() == 0) {
|
||||
jo_mst.put("bill_status", "10");
|
||||
jo_mst.setBill_status("10");
|
||||
}//存在分配中的明细
|
||||
else if (dtls_30.size() != 0) {
|
||||
jo_mst.put("bill_status", "30");
|
||||
jo_mst.setBill_status("30");
|
||||
}
|
||||
}
|
||||
} else {//已分配完明细数等于总明细数
|
||||
jo_mst.put("bill_status", "40");
|
||||
jo_mst.setBill_status("40");
|
||||
}
|
||||
wo_mst.update(jo_mst);
|
||||
iostorinvService.updateById(jo_mst);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,27 +6,42 @@ import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtProductplandtlService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtProductplanmstService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplandtl;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst;
|
||||
import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase;
|
||||
import org.nl.b_lms.storage_manage.md.dao.MdPbMeasureunit;
|
||||
import org.nl.b_lms.storage_manage.md.service.MaterialbaseService;
|
||||
import org.nl.b_lms.storage_manage.md.service.MdPbMeasureunitService;
|
||||
import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt;
|
||||
import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService;
|
||||
import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.WqlUtil;
|
||||
import org.nl.system.service.user.ISysUserService;
|
||||
import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl;
|
||||
import org.nl.wms.st.instor.service.RecutPlanService;
|
||||
import org.nl.wms.st.instor.service.dto.RecutPlanPageParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -42,52 +57,41 @@ public class RecutPlanServiceImpl implements RecutPlanService {
|
||||
private IStIvtIostorinvOutService iStIvtIostorinvOutService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService iSysUserService;
|
||||
private StIvtBsrealstorattrService bsrealstorattrService;
|
||||
|
||||
@Autowired
|
||||
private IStIvtProductplanmstService productplanmstService;
|
||||
@Autowired
|
||||
private IStIvtProductplandtlService productplandtlService;
|
||||
@Autowired
|
||||
private IpdmBiSubpackagerelationService subpackagerelationService;
|
||||
@Autowired
|
||||
private StIvtStructivtService structivtService;
|
||||
@Autowired
|
||||
private MaterialbaseService materialbaseService;
|
||||
@Autowired
|
||||
private MdPbMeasureunitService measureunitService;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> pageQuery(Map whereJson, Pageable page) {
|
||||
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||
map.put("flag", "1");
|
||||
if (StrUtil.isNotEmpty(map.get("bill_code"))) {
|
||||
map.put("bill_code", "%" + map.get("bill_code") + "%");
|
||||
}
|
||||
if (StrUtil.isNotEmpty(map.get("material_code"))) {
|
||||
map.put("material_code", "%" + map.get("material_code") + "%");
|
||||
}
|
||||
if (StrUtil.isNotEmpty(map.get("pcsn"))) {
|
||||
map.put("pcsn", (String) whereJson.get("pcsn"));
|
||||
}
|
||||
|
||||
//获取人员对应的仓库
|
||||
UserStorServiceImpl userStorService = new UserStorServiceImpl();
|
||||
String in_stor_id = userStorService.getInStor();
|
||||
|
||||
if (ObjectUtil.isNotEmpty(in_stor_id)) {
|
||||
map.put("in_stor_id", in_stor_id);
|
||||
}
|
||||
|
||||
JSONObject jo = WQL.getWO("QST_IVT_PRODUCTPLAN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "plan_id desc");
|
||||
return jo;
|
||||
public IPage<StIvtProductplanmst> pageQuery(RecutPlanPageParam param, PageQuery page) {
|
||||
List<String> storeForUser = bsrealstorattrService.getStoreForUser(SecurityUtils.getCurrentUserId());
|
||||
param.setIn_stor_id(storeForUser);
|
||||
IPage<StIvtProductplanmst> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
pages = productplanmstService.returnCutplanPage(pages, param);
|
||||
return pages;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteAll(Long[] ids) {
|
||||
WQLObject wo_mst = WQLObject.getWQLObject("st_ivt_productplanmst");
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("is_delete", "1");
|
||||
for (Long plan_id : ids) {
|
||||
wo_mst.update(jsonObject, "plan_id = '" + plan_id + "'");
|
||||
}
|
||||
productplanmstService.update(new LambdaUpdateWrapper<StIvtProductplanmst>()
|
||||
.set(StIvtProductplanmst::getIs_delete, "1")
|
||||
.in(StIvtProductplanmst::getPlan_id, Arrays.asList(ids)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void insertDtl(JSONObject map) {
|
||||
//主表
|
||||
WQLObject wo_mst = WQLObject.getWQLObject("st_ivt_productplanmst");
|
||||
|
||||
JSONArray rows = map.getJSONArray("tableData");
|
||||
map.remove("tableData");
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
@@ -111,7 +115,7 @@ public class RecutPlanServiceImpl implements RecutPlanService {
|
||||
//调用明细处理方法
|
||||
JSONObject ret = this.insertDtlByRows(mst_jo, rows);
|
||||
mst_jo.put("total_qty", ret.getDoubleValue("total_qty"));
|
||||
wo_mst.insert(mst_jo);
|
||||
productplanmstService.save(mst_jo.toJavaObject(StIvtProductplanmst.class));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -121,7 +125,6 @@ public class RecutPlanServiceImpl implements RecutPlanService {
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject insertDtlByRows(JSONObject jsonMst, JSONArray rows) {
|
||||
WQLObject wo_dtl = WQLObject.getWQLObject("st_ivt_productplandtl");
|
||||
|
||||
//定义返回数据
|
||||
JSONObject ret = new JSONObject();
|
||||
@@ -141,7 +144,7 @@ public class RecutPlanServiceImpl implements RecutPlanService {
|
||||
jsonDtl.put("qty", json.getDoubleValue("qty"));
|
||||
jsonDtl.put("remark", json.getString("remark"));
|
||||
jsonDtl.put("status", "10");
|
||||
wo_dtl.insert(jsonDtl);
|
||||
productplandtlService.save(jsonDtl.toJavaObject(StIvtProductplandtl.class));
|
||||
|
||||
total_qty = NumberUtil.add(total_qty, json.getDoubleValue("qty"));
|
||||
|
||||
@@ -152,54 +155,40 @@ public class RecutPlanServiceImpl implements RecutPlanService {
|
||||
|
||||
@Override
|
||||
public JSONArray getOutBillDtl(Map whereJson) {
|
||||
whereJson.put("flag", "2");
|
||||
JSONArray jo = WQL.getWO("QST_IVT_PRODUCTPLAN")
|
||||
.addParamMap((HashMap) whereJson)
|
||||
.process()
|
||||
.getResultJSONArray(0);
|
||||
return jo;
|
||||
return productplanmstService.getOutBillDtl(whereJson);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(JSONObject whereJson) {
|
||||
//主表
|
||||
WQLObject wo_mst = WQLObject.getWQLObject("st_ivt_productplanmst");
|
||||
//主表
|
||||
WQLObject wo_dtl = WQLObject.getWQLObject("st_ivt_productplandtl");
|
||||
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
String plan_id = (String) whereJson.get("plan_id");
|
||||
String plan_id = whereJson.getString("plan_id");
|
||||
//查询主表
|
||||
JSONObject jo_mst = wo_mst.query("plan_id='" + plan_id + "'").uniqueResult(0);
|
||||
|
||||
StIvtProductplanmst productplanmst = productplanmstService.getById(plan_id);
|
||||
//删除所有明细
|
||||
wo_dtl.delete("plan_id = '" + plan_id + "'");
|
||||
productplandtlService.remove(new LambdaQueryWrapper<StIvtProductplandtl>()
|
||||
.eq(StIvtProductplandtl::getPlan_id, plan_id));
|
||||
|
||||
//获取明细
|
||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||
//调用明细处理方法
|
||||
JSONObject ret = this.insertDtlByRows(jo_mst, rows);
|
||||
jo_mst.put("remark", whereJson.get("remark"));
|
||||
jo_mst.put("biz_date", whereJson.get("biz_date"));
|
||||
jo_mst.put("detail_count", rows.size());
|
||||
jo_mst.put("total_qty", ret.getString("total_qty"));
|
||||
jo_mst.put("update_optid", currentUserId + "");
|
||||
jo_mst.put("update_optname", nickName);
|
||||
jo_mst.put("update_time", now);
|
||||
JSONObject ret = this.insertDtlByRows((JSONObject) JSON.toJSON(productplanmst), rows);
|
||||
productplanmst.setRemark(whereJson.getString("remark"));
|
||||
productplanmst.setBiz_date(whereJson.getString("biz_date"));
|
||||
productplanmst.setDetail_count(BigDecimal.valueOf(rows.size()));
|
||||
productplanmst.setTotal_qty(ret.getBigDecimal("total_qty"));
|
||||
productplanmst.setUpdate_optid(currentUserId);
|
||||
productplanmst.setUpdate_optname(nickName);
|
||||
productplanmst.setUpdate_time(now);
|
||||
//更新主表
|
||||
wo_mst.update(jo_mst);
|
||||
productplanmstService.updateById(productplanmst);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void createBill(JSONObject whereJson) {
|
||||
|
||||
WQLObject dtl_wo = WQLObject.getWQLObject("st_ivt_productplandtl");
|
||||
WQLObject mst_wo = WQLObject.getWQLObject("st_ivt_productplanmst");
|
||||
|
||||
JSONArray rows = whereJson.getJSONArray("rows");
|
||||
JSONObject mst_jo = whereJson.getJSONObject("mst_jo");
|
||||
|
||||
@@ -221,73 +210,70 @@ public class RecutPlanServiceImpl implements RecutPlanService {
|
||||
if (StrUtil.isEmpty("sap_pcsn")) {
|
||||
throw new BadRequestException("请求参数SAP批次不能为空!");
|
||||
}
|
||||
JSONObject sub_jo = WQLObject.getWQLObject("PDM_BI_SubPackageRelation").query("sap_pcsn = '" + sap_pcsn + "'").uniqueResult(0);
|
||||
PdmBiSubpackagerelation sub_jo = subpackagerelationService.getOne(
|
||||
new LambdaQueryWrapper<PdmBiSubpackagerelation>()
|
||||
.eq(PdmBiSubpackagerelation::getSap_pcsn, sap_pcsn), false);
|
||||
if (ObjectUtil.isEmpty(sub_jo)) {
|
||||
throw new BadRequestException("LMS中不存在SAP批次为【" + sap_pcsn + "】的包装关系");
|
||||
}
|
||||
String container_name = sub_jo.getString("container_name");
|
||||
JSONObject struct_ivt = WQLObject.getWQLObject("st_ivt_structivt").query("pcsn = '" + container_name + "'").uniqueResult(0);
|
||||
String container_name = sub_jo.getContainer_name();
|
||||
StIvtStructivt struct_ivt = structivtService.getOneByPcsn(container_name, false);
|
||||
if (ObjectUtil.isEmpty(struct_ivt)) {
|
||||
throw new BadRequestException("SAP批次为【" + sap_pcsn + "】的成品卷不存在或已经出库!");
|
||||
} else {
|
||||
if (struct_ivt.getDoubleValue("frozen_qty") > 0) {
|
||||
if (struct_ivt.getFrozen_qty().doubleValue() > 0) {
|
||||
throw new BadRequestException("SAP批次为【" + sap_pcsn + "】的成品卷已经被分配或出库中");
|
||||
} else {
|
||||
JSONObject dtl = new JSONObject();
|
||||
//查询该物料
|
||||
JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + sub_jo.getString("product_name") + "'").uniqueResult(0);
|
||||
MdMeMaterialBase mater_jo = materialbaseService.getOne(new LambdaQueryWrapper<MdMeMaterialBase>()
|
||||
.eq(MdMeMaterialBase::getMaterial_code, sub_jo.getProduct_name()), false);
|
||||
if (ObjectUtil.isEmpty(mater_jo)) {
|
||||
throw new BadRequestException("未查询到物料:" + sub_jo.getString("product_name") + ",信息!");
|
||||
throw new BadRequestException("未查询到物料:" + sub_jo.getProduct_name() + ",信息!");
|
||||
}
|
||||
dtl.put("material_id", mater_jo.getString("material_id"));
|
||||
dtl.put("material_id", mater_jo.getMaterial_id());
|
||||
dtl.put("pcsn", container_name);
|
||||
dtl.put("box_no", sub_jo.getString("package_box_sn"));
|
||||
JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '" + mater_jo.getString("base_unit_id") + "'").uniqueResult(0);
|
||||
dtl.put("box_no", sub_jo.getPackage_box_sn());
|
||||
MdPbMeasureunit unit = measureunitService.getById(mater_jo.getBase_unit_id());
|
||||
if (ObjectUtil.isEmpty(unit)) {
|
||||
throw new BadRequestException("未查询到物料计量单位:" + mater_jo.getString("base_unit_id") + ",信息!");
|
||||
throw new BadRequestException("未查询到物料计量单位:" + mater_jo.getBase_unit_id() + ",信息!");
|
||||
}
|
||||
dtl.put("qty_unit_id", unit.getString("measure_unit_id"));
|
||||
dtl.put("qty_unit_name", unit.getString("unit_name"));
|
||||
dtl.put("plan_qty", sub_jo.getString("net_weight"));
|
||||
dtl.put("qty_unit_id", unit.getMeasure_unit_id());
|
||||
dtl.put("qty_unit_name", unit.getUnit_name());
|
||||
dtl.put("plan_qty", sub_jo.getNet_weight());
|
||||
dtls.add(dtl);
|
||||
}
|
||||
}
|
||||
|
||||
//将已经生成的明细状态变更为完成
|
||||
HashMap map = new HashMap<>();
|
||||
map.put("status", "99");
|
||||
dtl_wo.update(map, "plan_id = '" + mst_jo.getString("plan_id") + "' AND pcsn = '" + sap_pcsn + "'");
|
||||
productplandtlService.update(new LambdaUpdateWrapper<StIvtProductplandtl>()
|
||||
.set(StIvtProductplandtl::getStatus, "99")
|
||||
.eq(StIvtProductplandtl::getPlan_id, mst_jo.getString("plan_id"))
|
||||
.eq(StIvtProductplandtl::getPcsn, sap_pcsn));
|
||||
|
||||
//判断是否全部变更为99
|
||||
JSONArray dtl_rows = dtl_wo.query("plan_id = '" + mst_jo.getString("plan_id") + "' AND status < '99' ").getResultJSONArray(0);
|
||||
List<StIvtProductplandtl> dtl_rows = productplandtlService.list(new LambdaQueryWrapper<StIvtProductplandtl>()
|
||||
.eq(StIvtProductplandtl::getPlan_id, mst_jo.getString("plan_id"))
|
||||
.lt(StIvtProductplandtl::getStatus, "99"));
|
||||
if (dtl_rows.size() > 0) {
|
||||
//主表更新为出库中
|
||||
HashMap mst_map = new HashMap<>();
|
||||
mst_map.put("bill_status", "20");
|
||||
mst_wo.update(mst_map, "plan_id = '" + mst_jo.getString("plan_id") + "'");
|
||||
productplanmstService.update(new LambdaUpdateWrapper<StIvtProductplanmst>()
|
||||
.set(StIvtProductplanmst::getBill_status, "20")
|
||||
.eq(StIvtProductplanmst::getPlan_id, mst_jo.getString("plan_id")));
|
||||
} else {
|
||||
HashMap mst_map = new HashMap<>();
|
||||
mst_map.put("bill_status", "99");
|
||||
mst_map.put("confirm_optid", SecurityUtils.getCurrentUserId());
|
||||
mst_map.put("confirm_optname", SecurityUtils.getCurrentNickName());
|
||||
mst_map.put("confirm_time", DateUtil.now());
|
||||
mst_wo.update(mst_map, "plan_id = '" + mst_jo.getString("plan_id") + "'");
|
||||
productplanmstService.update(new LambdaUpdateWrapper<StIvtProductplanmst>()
|
||||
.set(StIvtProductplanmst::getBill_status, "99")
|
||||
.set(StIvtProductplanmst::getUpdate_optid, SecurityUtils.getCurrentUserId())
|
||||
.set(StIvtProductplanmst::getUpdate_optname, SecurityUtils.getCurrentNickName())
|
||||
.set(StIvtProductplanmst::getUpdate_time, DateUtil.now())
|
||||
.eq(StIvtProductplanmst::getPlan_id, mst_jo.getString("plan_id")));
|
||||
}
|
||||
}
|
||||
|
||||
if (!dtls.isEmpty()) {
|
||||
// 判断仓库是否是二期仓库
|
||||
if (mst_jo.getString("stor_id").equals(IOSEnum.STOR_ID.code("二期"))) {
|
||||
jsonMst.put("tableData", dtls);
|
||||
String iostorinv_id = iStIvtIostorinvOutService.insertMst(jsonMst);
|
||||
|
||||
//调用自动分配
|
||||
JSONObject out_jo = new JSONObject();
|
||||
out_jo.put("iostorinv_id", iostorinv_id);
|
||||
out_jo.put("div_type", "1");
|
||||
// 改为手动分配
|
||||
// iStIvtIostorinvOutService.allDiv(out_jo);
|
||||
}
|
||||
jsonMst.put("tableData", dtls);
|
||||
iStIvtIostorinvOutService.insertMst(jsonMst);
|
||||
// hint: 手动分配,不自动分配
|
||||
|
||||
} else {
|
||||
throw new BadRequestException("推送失败!SAP推送的子卷明细不符合出库状态!");
|
||||
@@ -298,14 +284,12 @@ public class RecutPlanServiceImpl implements RecutPlanService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void auditOut(JSONObject whereJson) {
|
||||
WQLObject mst = WQLObject.getWQLObject("st_ivt_productplanmst");
|
||||
|
||||
// 更新主表为完成
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("bill_status", "99");
|
||||
param.put("confirm_optid", SecurityUtils.getCurrentUserId());
|
||||
param.put("confirm_optname", SecurityUtils.getCurrentNickName());
|
||||
param.put("confirm_time", DateUtil.now());
|
||||
mst.update(param, "plan_id = '" + whereJson.getString("plan_id") + "'");
|
||||
productplanmstService.update(new LambdaUpdateWrapper<StIvtProductplanmst>()
|
||||
.set(StIvtProductplanmst::getBill_status, "99")
|
||||
.set(StIvtProductplanmst::getUpdate_optid, SecurityUtils.getCurrentUserId())
|
||||
.set(StIvtProductplanmst::getUpdate_optname, SecurityUtils.getCurrentNickName())
|
||||
.set(StIvtProductplanmst::getUpdate_time, DateUtil.now())
|
||||
.eq(StIvtProductplanmst::getPlan_id, whereJson.getString("plan_id")));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
[交易说明]
|
||||
交易名: 成品报废审核分页查询
|
||||
所属模块:
|
||||
所属模块:flag1见:org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplanmstMapper.returnCutplanPage
|
||||
flag2见:org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplanmstMapper.getOutBillDtl
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
@@ -121,4 +122,4 @@
|
||||
order by sub.package_box_sn
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
Reference in New Issue
Block a user