feat: 出库冲销查询、冲销功能
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import netscape.javascript.JSObject;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.st.inbill.service.dto.OutChargePageParam;
|
||||
import org.nl.wms.st.inbill.service.vo.OutWriteOffVo;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -140,4 +146,12 @@ public interface IStIvtIostorinvService extends IService<StIvtIostorinv> {
|
||||
* }
|
||||
*/
|
||||
void confirm(Map whereJson);
|
||||
|
||||
/**
|
||||
* 冲销出库分页查询
|
||||
* @param paramMap
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
IPage<StIvtIostorinv> outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page);
|
||||
}
|
||||
|
||||
@@ -78,5 +78,12 @@ public interface IStIvtIostorinvdisService extends IService<StIvtIostorinvdis> {
|
||||
* @return
|
||||
*/
|
||||
List<OutBillPageVo> getOutBillData(OutBillPageParam paramMap);
|
||||
|
||||
/**
|
||||
* 根据单据id获取分配数据
|
||||
* @param iosId 出入库单id
|
||||
* @return
|
||||
*/
|
||||
List<StIvtIostorinvdis> getAllocationByIosId(String iosId);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,7 @@ 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.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
@@ -12,6 +10,7 @@ import java.math.BigDecimal;
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单主表
|
||||
* 追加了NoArgsConstructor与AllArgsConstructor
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
@@ -19,9 +18,10 @@ import java.math.BigDecimal;
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("st_ivt_iostorinv")
|
||||
|
||||
public class StIvtIostorinv implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
@@ -75,7 +75,7 @@ public class StIvtIostorinv implements Serializable {
|
||||
/**
|
||||
* 来源方标识
|
||||
*/
|
||||
private Long source_id;
|
||||
private String source_id;
|
||||
|
||||
/**
|
||||
* 来源方名称
|
||||
@@ -120,7 +120,7 @@ public class StIvtIostorinv implements Serializable {
|
||||
/**
|
||||
* 制单人
|
||||
*/
|
||||
private Long input_optid;
|
||||
private String input_optid;
|
||||
|
||||
/**
|
||||
* 制单人姓名
|
||||
@@ -135,7 +135,7 @@ public class StIvtIostorinv implements Serializable {
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private Long update_optid;
|
||||
private String update_optid;
|
||||
|
||||
/**
|
||||
* 修改人姓名
|
||||
@@ -150,7 +150,7 @@ public class StIvtIostorinv implements Serializable {
|
||||
/**
|
||||
* 分配人
|
||||
*/
|
||||
private Long dis_optid;
|
||||
private String dis_optid;
|
||||
|
||||
/**
|
||||
* 分配人姓名
|
||||
@@ -165,7 +165,7 @@ public class StIvtIostorinv implements Serializable {
|
||||
/**
|
||||
* 确认人
|
||||
*/
|
||||
private Long confirm_optid;
|
||||
private String confirm_optid;
|
||||
|
||||
/**
|
||||
* 确认人姓名
|
||||
@@ -200,7 +200,7 @@ public class StIvtIostorinv implements Serializable {
|
||||
/**
|
||||
* 回传人
|
||||
*/
|
||||
private Long upload_optid;
|
||||
private String upload_optid;
|
||||
|
||||
/**
|
||||
* 回传时间
|
||||
@@ -215,7 +215,7 @@ public class StIvtIostorinv implements Serializable {
|
||||
/**
|
||||
* 冲销人
|
||||
*/
|
||||
private Long writeoff_optid;
|
||||
private String writeoff_optid;
|
||||
|
||||
/**
|
||||
* 冲销时间
|
||||
@@ -305,7 +305,7 @@ public class StIvtIostorinv implements Serializable {
|
||||
/**
|
||||
* 移入仓库标识
|
||||
*/
|
||||
private Long out_stor_id;
|
||||
private String out_stor_id;
|
||||
|
||||
/**
|
||||
* 回传MES
|
||||
|
||||
@@ -50,7 +50,7 @@ public class StIvtIostorinvdis implements Serializable {
|
||||
/**
|
||||
* 库区标识
|
||||
*/
|
||||
private Long sect_id;
|
||||
private String sect_id;
|
||||
|
||||
/**
|
||||
* 库区编码
|
||||
@@ -65,7 +65,7 @@ public class StIvtIostorinvdis implements Serializable {
|
||||
/**
|
||||
* 仓位标识
|
||||
*/
|
||||
private Long struct_id;
|
||||
private String struct_id;
|
||||
|
||||
/**
|
||||
* 仓位编码
|
||||
@@ -100,12 +100,12 @@ public class StIvtIostorinvdis implements Serializable {
|
||||
/**
|
||||
* 任务标识
|
||||
*/
|
||||
private Long task_id;
|
||||
private String task_id;
|
||||
|
||||
/**
|
||||
* 存储载具标识
|
||||
*/
|
||||
private Long storagevehicle_id;
|
||||
private String storagevehicle_id;
|
||||
|
||||
/**
|
||||
* 存储载具编码
|
||||
|
||||
@@ -2,9 +2,7 @@ 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.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
@@ -21,6 +19,8 @@ import java.math.BigDecimal;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("st_ivt_iostorinvdtl")
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class StIvtIostorinvdtl implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -3,11 +3,13 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.IostorInvQuery;
|
||||
import org.nl.wms.st.inbill.service.dto.OutChargePageParam;
|
||||
import org.nl.wms.st.inbill.service.dto.RawAssistIStorDto;
|
||||
import org.nl.wms.st.inbill.service.vo.OutWriteOffVo;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.List;
|
||||
@@ -51,4 +53,12 @@ public interface StIvtIostorinvMapper extends BaseMapper<StIvtIostorinv> {
|
||||
*/
|
||||
|
||||
List<IostorInvQuery> getIosInv(@Param("params") RawAssistIStorDto rawAssistIStorDto);
|
||||
|
||||
/**
|
||||
* 出库冲销分页查询
|
||||
* @param pages
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
IPage<StIvtIostorinv> outWriteOffPageDatas(IPage<StIvtIostorinv> pages, OutChargePageParam paramMap);
|
||||
}
|
||||
|
||||
@@ -241,5 +241,134 @@
|
||||
</where>
|
||||
|
||||
</select>
|
||||
<select id="outWriteOffPageDatas"
|
||||
resultType="org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv">
|
||||
SELECT
|
||||
ios2.trans_code,
|
||||
ios2.is_writeoff,
|
||||
ios2.input_optname,
|
||||
ios2.input_time,
|
||||
ios2.stor_id,
|
||||
ios2.syscompanyid,
|
||||
ios2.writeoff_time,
|
||||
ios2.car_type,
|
||||
ios2.create_mode,
|
||||
ios2.bill_type,
|
||||
ios2.is_upload,
|
||||
ios2.upload_mes,
|
||||
ios2.consignee,
|
||||
ios2.receiver,
|
||||
ios2.total_qty,
|
||||
ios2.receiptphone,
|
||||
ios2.source_type,
|
||||
ios2.other_freight,
|
||||
ios2.sysdeptid,
|
||||
ios2.upload_sap,
|
||||
ios2.receiptaddress,
|
||||
ios2.input_optid,
|
||||
ios2.buss_type,
|
||||
ios2.upload_time,
|
||||
ios2.estimated_freight,
|
||||
ios2.detail_count,
|
||||
ios2.carno,
|
||||
ios2.out_stor_id,
|
||||
ios2.deliveryaddress,
|
||||
ios2.update_optid,
|
||||
ios2.stor_code,
|
||||
ios2.drivername,
|
||||
ios2.upload_optid,
|
||||
ios2.bill_code,
|
||||
ios2.dis_optname,
|
||||
ios2.order_number,
|
||||
ios2.confirm_optid,
|
||||
ios2.remark,
|
||||
ios2.writeoff_optid,
|
||||
ios2.dis_time,
|
||||
ios2.deliveryunit,
|
||||
ios2.total_weight,
|
||||
ios2.deliveryname,
|
||||
ios2.update_time,
|
||||
ios2.update_optname,
|
||||
ios2.driverphone,
|
||||
ios2.source_name,
|
||||
ios2.biz_date,
|
||||
ios2.contractno,
|
||||
ios2.deliveryphone,
|
||||
ios2.confirm_optname,
|
||||
ios2.is_overdue,
|
||||
ios2.run_freight,
|
||||
ios2.unload_freight,
|
||||
ios2.bill_status,
|
||||
ios2.dis_optid,
|
||||
ios2.confirm_time,
|
||||
ios2.is_delete,
|
||||
ios2.cust_code,
|
||||
ios2.iostorinv_id,
|
||||
ios2.logisticscompany,
|
||||
ios2.stor_name,
|
||||
ios2.io_type,
|
||||
ios2.source_id
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
ios.*
|
||||
FROM
|
||||
ST_IVT_IOStorInv ios
|
||||
WHERE
|
||||
ios.is_delete = '0'
|
||||
AND
|
||||
ios.io_type = '1'
|
||||
AND
|
||||
ios.is_writeoff = '0'
|
||||
AND
|
||||
ios.bill_status = '99'
|
||||
AND
|
||||
ios.bill_type in ('1001','1009')
|
||||
<if test="paramMap.in_stor_id != null and !paramMap.in_stor_id.isEmpty()">
|
||||
AND ios.stor_id IN
|
||||
<foreach collection="paramMap.in_stor_id" item="code" separator="," open="(" close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="paramMap.bill_code != null and paramMap.bill_code != ''">
|
||||
AND ios.bill_code LIKE CONCAT('%', #{paramMap.bill_code}, '%')
|
||||
</if>
|
||||
<if test="paramMap.stor_id != null and paramMap.stor_id != ''">
|
||||
AND ios.stor_id = #{paramMap.stor_id}
|
||||
</if>
|
||||
<if test="paramMap.bill_type != null and paramMap.bill_type != ''">
|
||||
AND ios.bill_type = #{paramMap.bill_type}
|
||||
</if>
|
||||
<if test="paramMap.create_mode != null and paramMap.create_mode != ''">
|
||||
AND ios.create_mode = #{paramMap.create_mode}
|
||||
</if>
|
||||
<if test="paramMap.begin_time != null and paramMap.begin_time != ''">
|
||||
AND ios.input_time <![CDATA[ >= ]]> #{paramMap.begin_time}
|
||||
</if>
|
||||
<if test="paramMap.end_time != null and paramMap.end_time != ''">
|
||||
AND ios.input_time <![CDATA[ <= ]]> #{paramMap.end_time}
|
||||
</if>
|
||||
) ios2
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
dis.iostorinv_id
|
||||
FROM
|
||||
st_ivt_iostorinvdis dis
|
||||
<!-- 后续加在分切计划表 -->
|
||||
<if test="paramMap.sap_pcsn != null and paramMap.sap_pcsn != ''">
|
||||
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn
|
||||
</if>
|
||||
WHERE
|
||||
1 = 1
|
||||
<if test="paramMap.pcsn != null and paramMap.pcsn != ''">
|
||||
AND ios.pcsn LIKE CONCAT('%', #{paramMap.pcsn}, '%')
|
||||
</if>
|
||||
<if test="paramMap.sap_pcsn != null and paramMap.sap_pcsn != ''">
|
||||
AND sub.sap_pcsn LIKE CONCAT('%', #{paramMap.sap_pcsn}, '%')
|
||||
</if>
|
||||
GROUP BY dis.iostorinv_id
|
||||
) dis2 ON dis2.iostorinv_id = ios2.iostorinv_id
|
||||
order by iostorinv_id desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -859,7 +859,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
// 更新单据
|
||||
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
mstDao.setConfirm_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setConfirm_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setConfirm_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setConfirm_time(DateUtil.now());
|
||||
this.updateById(mstDao);
|
||||
@@ -1701,7 +1701,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 未完成:只更新分配明细状态不更新任务id
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(Long.parseLong(task_group_id));
|
||||
row.setTask_id(task_group_id);
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
@@ -1758,7 +1758,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(Long.parseLong(task_id));
|
||||
row.setTask_id(task_id);
|
||||
row.setPoint_id(jsonPoint.getLongValue("point_id"));
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
@@ -1847,7 +1847,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 未完成:只更新分配明细状态不更新任务id
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(Long.parseLong(task_group_id));
|
||||
row.setTask_id(task_group_id);
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
@@ -1904,7 +1904,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(Long.parseLong(task_id));
|
||||
row.setTask_id(task_id);
|
||||
row.setPoint_id(jsonPoint.getLongValue("point_id"));
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
@@ -1979,7 +1979,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
public void updateMstStatus(String iostorinv_id) {
|
||||
StIvtIostorinv mstDao = this.getById(iostorinv_id);
|
||||
|
||||
mstDao.setUpdate_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setUpdate_time(DateUtil.now());
|
||||
|
||||
@@ -2014,7 +2014,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
if (one_create) {
|
||||
// 至少一个别的状态
|
||||
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中"));
|
||||
mstDao.setDis_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setDis_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setDis_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setDis_time(DateUtil.now());
|
||||
}
|
||||
@@ -2022,7 +2022,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
if (div_create) {
|
||||
// 分配完状态
|
||||
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
||||
mstDao.setDis_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setDis_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setDis_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setDis_time(DateUtil.now());
|
||||
}
|
||||
@@ -2030,7 +2030,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
if (confirm_create) {
|
||||
// 完成状态
|
||||
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
mstDao.setConfirm_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setConfirm_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setConfirm_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setConfirm_time(DateUtil.now());
|
||||
}
|
||||
@@ -2066,10 +2066,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
.bill_status(whereJson.getString("bill_status"))
|
||||
.total_qty(whereJson.getBigDecimal("total_qty"))
|
||||
.create_mode(IOSEnum.CREATE_MODE.code("PC产生"))
|
||||
.input_optid(whereJson.getLongValue("input_optid"))
|
||||
.input_optid(whereJson.getString("input_optid"))
|
||||
.input_optname(whereJson.getString("input_optname"))
|
||||
.input_time(DateUtil.now())
|
||||
.update_optid(whereJson.getLongValue("input_optid"))
|
||||
.update_optid(whereJson.getString("input_optid"))
|
||||
.update_optname(whereJson.getString("input_optname"))
|
||||
.update_time(DateUtil.now())
|
||||
.is_delete(IOSEnum.IS_NOTANDYES.code("否"))
|
||||
@@ -2079,7 +2079,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
.build();
|
||||
|
||||
if (ObjectUtil.isNotEmpty(whereJson.getString("out_stor_id"))) {
|
||||
mstDao.setOut_stor_id(whereJson.getLongValue("out_stor_id"));
|
||||
mstDao.setOut_stor_id(whereJson.getString("out_stor_id"));
|
||||
}
|
||||
|
||||
} else {
|
||||
@@ -2092,12 +2092,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
mstDao.setRemark(whereJson.getString("remark"));
|
||||
mstDao.setTotal_qty(whereJson.getBigDecimal("total_qty"));
|
||||
mstDao.setBill_type(whereJson.getString("bill_type"));
|
||||
mstDao.setUpdate_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setUpdate_time(DateUtil.now());
|
||||
|
||||
if (ObjectUtil.isNotEmpty(whereJson.getString("out_stor_id"))) {
|
||||
mstDao.setOut_stor_id(whereJson.getLongValue("out_stor_id"));
|
||||
mstDao.setOut_stor_id(whereJson.getString("out_stor_id"));
|
||||
}
|
||||
}
|
||||
return mstDao;
|
||||
|
||||
@@ -9,6 +9,7 @@ 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.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
@@ -31,7 +32,9 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvMapper;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService;
|
||||
import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -48,7 +51,10 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.service.PointService;
|
||||
import org.nl.wms.sch.service.dto.PointDto;
|
||||
import org.nl.wms.st.inbill.service.StorPublicService;
|
||||
import org.nl.wms.st.inbill.service.dto.OutChargePageParam;
|
||||
import org.nl.wms.st.inbill.service.vo.OutWriteOffVo;
|
||||
import org.nl.wms.st.returns.service.impl.InAndOutRetrunServiceImpl;
|
||||
import org.nl.wms.stat.service.vo.InBillPageVo;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -132,6 +138,11 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
|
||||
@Autowired
|
||||
private StIvtIostorinvMapper stIvtIostorinvMapper;
|
||||
@Autowired
|
||||
private StIvtBsrealstorattrService bsrealstorattrService;
|
||||
|
||||
@Override
|
||||
public Object pageQuery(Map query, Pageable pageQuery) {
|
||||
Page<Object> page = PageHelper.startPage(pageQuery.getPageNumber() + 1, pageQuery.getPageSize());
|
||||
@@ -389,7 +400,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
iStIvtIostorinvdtlService.updateStatus(disDao.getIostorinvdtl_id());
|
||||
// 更新主表状态
|
||||
StIvtIostorinv mst = updateMstStatus(disDao.getIostorinv_id());
|
||||
mst.setDis_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mst.setDis_optid(SecurityUtils.getCurrentUserId());
|
||||
mst.setDis_optname(SecurityUtils.getCurrentNickName());
|
||||
mst.setDis_time(DateUtil.now());
|
||||
this.updateById(mst);
|
||||
@@ -520,7 +531,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
|
||||
// 更新主表状态
|
||||
StIvtIostorinv mst = updateMstStatus(jsonDis.getString("iostorinv_id"));
|
||||
mst.setDis_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mst.setDis_optid(SecurityUtils.getCurrentUserId());
|
||||
mst.setDis_optname(SecurityUtils.getCurrentNickName());
|
||||
mst.setDis_time(DateUtil.now());
|
||||
this.updateById(mst);
|
||||
@@ -665,6 +676,14 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
confirmMst(mstDao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<StIvtIostorinv> outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page) {
|
||||
List<String> userStores = bsrealstorattrService.getStoreForUser(SecurityUtils.getCurrentUserId());
|
||||
paramMap.setIn_stor_id(userStores);
|
||||
IPage<StIvtIostorinv> pages = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPage() + 1, page.getSize());
|
||||
return stIvtIostorinvMapper.outWriteOffPageDatas(pages, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 组织主表数据
|
||||
*
|
||||
@@ -720,10 +739,10 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
.bill_status(whereJson.get("bill_status").toString())
|
||||
.total_qty(BigDecimal.valueOf(Double.parseDouble(whereJson.get("total_qty").toString())))
|
||||
.create_mode(IOSEnum.CREATE_MODE.code("PC产生"))
|
||||
.input_optid(Long.parseLong(currentUserId))
|
||||
.input_optid(currentUserId)
|
||||
.input_optname(currentNickName)
|
||||
.input_time(DateUtil.now())
|
||||
.update_optid(Long.parseLong(currentUserId))
|
||||
.update_optid(currentUserId)
|
||||
.update_optname(currentNickName)
|
||||
.update_time(DateUtil.now())
|
||||
.is_delete(IOSEnum.IS_NOTANDYES.code("否"))
|
||||
@@ -732,10 +751,10 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
.sysdeptid(SecurityUtils.getDeptId())
|
||||
.build();
|
||||
if (ObjectUtil.isNotEmpty(MapUtil.getStr(whereJson, "out_stor_id"))) {
|
||||
mstDao.setOut_stor_id(Long.parseLong(MapUtil.getStr(whereJson, "out_stor_id")));
|
||||
mstDao.setOut_stor_id(MapUtil.getStr(whereJson, "out_stor_id"));
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(MapUtil.getStr(whereJson, "source_id"))) {
|
||||
mstDao.setSource_id(Long.parseLong(MapUtil.getStr(whereJson, "source_id")));
|
||||
mstDao.setSource_id(MapUtil.getStr(whereJson, "source_id"));
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -747,7 +766,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
mstDao.setDetail_count(BigDecimal.valueOf(((ArrayList<HashMap>) whereJson.get("tableData")).size()));
|
||||
mstDao.setRemark(whereJson.get("remark").toString());
|
||||
mstDao.setTotal_qty(BigDecimal.valueOf(Double.parseDouble(whereJson.get("total_qty").toString())));
|
||||
mstDao.setUpdate_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setUpdate_time(DateUtil.now());
|
||||
}
|
||||
@@ -791,7 +810,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
public StIvtIostorinv updateMstStatus(String iostorinv_id) {
|
||||
StIvtIostorinv mstDao = this.getById(iostorinv_id);
|
||||
|
||||
mstDao.setUpdate_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setUpdate_time(DateUtil.now());
|
||||
|
||||
@@ -836,7 +855,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
if (confirm_create) {
|
||||
// 完成状态
|
||||
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
mstDao.setConfirm_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setConfirm_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setConfirm_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setConfirm_time(DateUtil.now());
|
||||
|
||||
@@ -930,7 +949,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
|
||||
// 更新主表为完成
|
||||
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
mstDao.setConfirm_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setConfirm_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setConfirm_optname(SecurityUtils.getCurrentNickName());
|
||||
mstDao.setConfirm_time(DateUtil.now());
|
||||
|
||||
@@ -1014,7 +1033,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
bean.uploadMES(param);
|
||||
mstDao.setIs_upload(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
mstDao.setUpload_mes(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
mstDao.setUpload_optid(Long.parseLong(SecurityUtils.getCurrentUserId()));
|
||||
mstDao.setUpload_optid(SecurityUtils.getCurrentUserId());
|
||||
mstDao.setUpload_time(DateUtil.now());
|
||||
this.updateById(mstDao);
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
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.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@@ -103,16 +104,16 @@ public class StIvtIostorinvdisServiceImpl extends ServiceImpl<StIvtIostorinvdisM
|
||||
.build();
|
||||
|
||||
if (ObjectUtil.isNotEmpty(json.getString("sect_id"))) {
|
||||
disDao.setSect_id(json.getLongValue("sect_id"));
|
||||
disDao.setSect_id(json.getString("sect_id"));
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(json.getString("struct_id"))) {
|
||||
disDao.setStruct_id(json.getLongValue("struct_id"));
|
||||
disDao.setStruct_id(json.getString("struct_id"));
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(json.getString("task_id"))) {
|
||||
disDao.setTask_id(json.getLongValue("task_id"));
|
||||
disDao.setTask_id(json.getString("task_id"));
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(json.getString("storagevehicle_id"))) {
|
||||
disDao.setStoragevehicle_id(json.getLongValue("storagevehicle_id"));
|
||||
disDao.setStoragevehicle_id(json.getString("storagevehicle_id"));
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(json.getString("point_id"))) {
|
||||
disDao.setPoint_id(json.getLongValue("point_id"));
|
||||
@@ -287,4 +288,11 @@ public class StIvtIostorinvdisServiceImpl extends ServiceImpl<StIvtIostorinvdisM
|
||||
}
|
||||
return stIvtIostorinvdisMapper.getOutBillData(paramMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StIvtIostorinvdis> getAllocationByIosId(String iosId) {
|
||||
LambdaQueryWrapper<StIvtIostorinvdis> lam = new LambdaQueryWrapper<>();
|
||||
lam.eq(StIvtIostorinvdis::getIostorinv_id, iosId);
|
||||
return list(lam);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,16 +301,16 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
||||
.iostorinv_id(dtlDao.getIostorinv_id())
|
||||
.iostorinvdtl_id(dtlDao.getIostorinvdtl_id())
|
||||
.seq_no(BigDecimal.valueOf(i + 1))
|
||||
.sect_id(jsonIvt.getLongValue("sect_id"))
|
||||
.sect_id(jsonIvt.getString("sect_id"))
|
||||
.sect_code(jsonIvt.getString("sect_code"))
|
||||
.sect_name(jsonIvt.getString("sect_name"))
|
||||
.struct_id(jsonIvt.getLongValue("struct_id"))
|
||||
.struct_id(jsonIvt.getString("struct_id"))
|
||||
.struct_code(jsonIvt.getString("struct_code"))
|
||||
.struct_name(jsonIvt.getString("struct_name"))
|
||||
.material_id(jsonIvt.getLongValue("material_id"))
|
||||
.pcsn(jsonIvt.getString("pcsn"))
|
||||
.quality_scode(jsonIvt.getString("quality_scode"))
|
||||
.storagevehicle_id(jsonIvt.getLongValue("storagevehicle_id"))
|
||||
.storagevehicle_id(jsonIvt.getString("storagevehicle_id"))
|
||||
.storagevehicle_code(jsonIvt.getString("storagevehicle_code"))
|
||||
.is_issued(IOSEnum.IS_NOTANDYES.code("否"))
|
||||
.qty_unit_id(jsonUnit.getLongValue("measure_unit_id"))
|
||||
|
||||
@@ -82,7 +82,8 @@ public class StIvtStructivt {
|
||||
/**
|
||||
* 计量单位标识
|
||||
*/
|
||||
private String qtyUnit_id;
|
||||
// private String qtyUnit_id;
|
||||
private String qty_unit_id;
|
||||
|
||||
/**
|
||||
* 入库时间
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.nl.wms.stat.service.vo.PastStructPageVo;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 仓位库存表
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/5
|
||||
*/
|
||||
@@ -54,4 +55,12 @@ public interface StIvtStructivtService extends IService<StIvtStructivt> {
|
||||
* @return
|
||||
*/
|
||||
List<PastStructPageVo> getPastStructDatas(PastStructPageParam paramMap);
|
||||
|
||||
/**
|
||||
* 根据批次获取单个库存信息
|
||||
* @param pcsn 批次
|
||||
* @param throwEx 查询超出一个是否抛出异常
|
||||
* @return
|
||||
*/
|
||||
StIvtStructivt getOneByPcsn(String pcsn, boolean throwEx);
|
||||
}
|
||||
|
||||
@@ -64,4 +64,11 @@ public class StIvtStructivtServiceImpl extends ServiceImpl<StIvtStructivtMapper,
|
||||
public List<PastStructPageVo> getPastStructDatas(PastStructPageParam paramMap) {
|
||||
return stIvtStructivtMapper.getPastStructDatas(paramMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StIvtStructivt getOneByPcsn(String pcsn, boolean throwEx) {
|
||||
LambdaQueryWrapper<StIvtStructivt> lam = new LambdaQueryWrapper<>();
|
||||
lam.eq(StIvtStructivt::getPcsn, pcsn);
|
||||
return getOne(lam, throwEx);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,12 @@ package org.nl.wms.st.inbill.rest;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.nl.wms.st.inbill.service.OutChargeService;
|
||||
import org.nl.wms.st.inbill.service.dto.OutChargePageParam;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@@ -25,20 +29,32 @@ public class OutChargeController {
|
||||
|
||||
private final OutChargeService outChargeService;
|
||||
|
||||
@GetMapping
|
||||
@Log("出库单查询")
|
||||
// @GetMapping
|
||||
// @Log("出库单查询")
|
||||
//
|
||||
// //@PreAuthorize("@el.check('regionio:list')")
|
||||
// public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
// return new ResponseEntity<>(outChargeService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
// }
|
||||
|
||||
//@PreAuthorize("@el.check('regionio:list')")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(outChargeService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
@GetMapping
|
||||
@Log("出库冲销查询")
|
||||
public ResponseEntity<Object> query(OutChargePageParam paramMap, PageQuery page) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(outChargeService.outWriteOffPageDatas(paramMap, page)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/charge")
|
||||
@Log("冲销")
|
||||
// @PostMapping("/charge")
|
||||
// @Log("冲销")
|
||||
// //@PreAuthorize("@el.check('regionio:add')")
|
||||
// public ResponseEntity<Object> charge(@RequestBody Map whereJson) {
|
||||
// outChargeService.charge(whereJson);
|
||||
// return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
// }
|
||||
|
||||
//@PreAuthorize("@el.check('regionio:add')")
|
||||
public ResponseEntity<Object> charge(@RequestBody Map whereJson) {
|
||||
outChargeService.charge(whereJson);
|
||||
@PostMapping("/charge")
|
||||
@Log("出库冲销 - 做入库")
|
||||
public ResponseEntity<Object> outWriteOffCharge(@RequestBody StIvtIostorinv paramMap) {
|
||||
outChargeService.outWriteOffCharge(paramMap);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
package org.nl.wms.st.inbill.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import netscape.javascript.JSObject;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.st.inbill.service.dto.OutChargePageParam;
|
||||
import org.nl.wms.st.inbill.service.vo.OutWriteOffVo;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@@ -30,4 +37,17 @@ public interface OutChargeService {
|
||||
*/
|
||||
void charge(@RequestBody Map whereJson);
|
||||
|
||||
/**
|
||||
* 冲销出库的出库单查询
|
||||
* @param paramMap
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
IPage<StIvtIostorinv> outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page);
|
||||
|
||||
/**
|
||||
* 冲销出库
|
||||
* @param outbound 出库单
|
||||
*/
|
||||
void outWriteOffCharge(StIvtIostorinv outbound);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.nl.wms.st.inbill.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 出库冲销分页参数
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/10
|
||||
*/
|
||||
@Data
|
||||
public class OutChargePageParam implements Serializable {
|
||||
private String bill_code;
|
||||
private String stor_id;
|
||||
private List<String> in_stor_id;
|
||||
private String begin_time;
|
||||
private String end_time;
|
||||
private String create_mode;
|
||||
private String bill_type;
|
||||
private String pcsn;
|
||||
private String sap_pcsn;
|
||||
}
|
||||
@@ -8,34 +8,68 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
|
||||
import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
|
||||
import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt;
|
||||
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.wms.basedata.st.service.impl.UserStorServiceImpl;
|
||||
import org.nl.wms.st.inbill.service.OutChargeService;
|
||||
import org.nl.wms.st.inbill.service.dto.OutChargePageParam;
|
||||
import org.nl.wms.stat.service.enums.InBillTypeEnum;
|
||||
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.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.nl.common.utils.IdUtil.getStringId;
|
||||
|
||||
/**
|
||||
* @author Liuxy
|
||||
* @description 服务实现
|
||||
* @date 2022-08-11
|
||||
**/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class OutChargeServiceImpl implements OutChargeService {
|
||||
|
||||
/** 单据表 */
|
||||
@Autowired
|
||||
private IStIvtIostorinvService iStIvtIostorinvService;
|
||||
/** 出入库单分配表 */
|
||||
@Autowired
|
||||
private IStIvtIostorinvdisService iostorinvdisService;
|
||||
/** 出入库单明细表 */
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlService iostorinvdtlService;
|
||||
/** 仓位库存表 */
|
||||
@Autowired
|
||||
private StIvtStructivtService structivtService;
|
||||
@Autowired
|
||||
private IpdmBiSubpackagerelationService subpackagerelationService;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||
String bill_code = MapUtil.getStr(whereJson, "bill_code");
|
||||
@@ -160,7 +194,10 @@ public class OutChargeServiceImpl implements OutChargeService {
|
||||
whereJson.put("writeoff_time", "");
|
||||
whereJson.put("upload_mes", "");
|
||||
whereJson.put("upload_sap", "");
|
||||
mst_wql.insert(whereJson);
|
||||
// mst_wql.insert(whereJson);
|
||||
// if (true) {
|
||||
// throw new BadRequestException("测试中...");
|
||||
// }
|
||||
|
||||
ArrayList<String> ivtList = new ArrayList<>(); // 存在库存的集合
|
||||
for (int i = 0; i < dis_rows.size(); i++) {
|
||||
@@ -191,7 +228,7 @@ public class OutChargeServiceImpl implements OutChargeService {
|
||||
dis_row.put("assign_qty", dis_row.getString("plan_qty"));
|
||||
dis_row.put("unassign_qty", "0");
|
||||
//插入手工入库明细表
|
||||
dtl_wql.insert(dis_row);
|
||||
// dtl_wql.insert(dis_row);
|
||||
|
||||
dis_row.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
dis_row.put("seq_no", 1);
|
||||
@@ -206,7 +243,7 @@ public class OutChargeServiceImpl implements OutChargeService {
|
||||
dis_row.put("point_id", "");
|
||||
dis_row.put("task_id", "");
|
||||
//插入分配表
|
||||
dis_wql.insert(dis_row);
|
||||
// dis_wql.insert(dis_row);
|
||||
|
||||
//将包装关系中对应的记录状态改为包装
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
@@ -226,4 +263,115 @@ public class OutChargeServiceImpl implements OutChargeService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<StIvtIostorinv> outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page) {
|
||||
return iStIvtIostorinvService.outWriteOffPageDatas(paramMap, page);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void outWriteOffCharge(StIvtIostorinv outbound) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
String oldOutOrderId = outbound.getIostorinv_id();
|
||||
// 1、校验主表状态为完成
|
||||
StIvtIostorinv oldOutOrder = iStIvtIostorinvService.getById(oldOutOrderId);
|
||||
if (!"99".equals(oldOutOrder.getBill_status())) {
|
||||
throw new BadRequestException("出库单[" + outbound.getBill_code() + "]的状态必须为完成!");
|
||||
}
|
||||
// 2、更新销售出库为已冲销
|
||||
// 需要冲销的出库单Id
|
||||
LambdaUpdateWrapper<StIvtIostorinv> iosInvLam = new LambdaUpdateWrapper<>();
|
||||
iosInvLam.set(StIvtIostorinv::getIs_writeoff, SlitterConstant.SLITTER_YES)
|
||||
.set(StIvtIostorinv::getUpdate_time, now)
|
||||
.eq(StIvtIostorinv::getIostorinv_id, oldOutOrderId);
|
||||
iStIvtIostorinvService.update(iosInvLam);
|
||||
// 3、生成手工入库单
|
||||
// 获取出库单对应的分配数据
|
||||
List<StIvtIostorinvdis> outboundDisList = iostorinvdisService.getAllocationByIosId(oldOutOrderId);
|
||||
String manualInStorageOrderId = getStringId();
|
||||
String manualInBillCode = CodeUtil.getNewCode("IO_CODE");
|
||||
outbound.setIostorinv_id(manualInStorageOrderId);
|
||||
outbound.setBill_code(manualInBillCode);
|
||||
outbound.setIo_type("0");
|
||||
outbound.setBill_type(InBillTypeEnum.MANUAL_IN.getCode());
|
||||
outbound.setBuss_type("0009");
|
||||
outbound.setBill_status("30");
|
||||
outbound.setInput_optid(currentUserId);
|
||||
outbound.setInput_optname(nickName);
|
||||
outbound.setInput_time(now);
|
||||
outbound.setUpdate_optid(currentUserId);
|
||||
outbound.setUpdate_optname(nickName);
|
||||
outbound.setUpdate_time(now);
|
||||
outbound.setDis_optid(currentUserId);
|
||||
outbound.setDis_optname(nickName);
|
||||
outbound.setDis_time(now);
|
||||
outbound.setConfirm_optid("0");
|
||||
outbound.setConfirm_optname("");
|
||||
outbound.setConfirm_time("");
|
||||
outbound.setIs_upload("");
|
||||
outbound.setUpload_optid("0");
|
||||
outbound.setUpload_time("");
|
||||
outbound.setIs_writeoff("0");
|
||||
outbound.setWriteoff_optid("0");
|
||||
outbound.setWriteoff_time("");
|
||||
outbound.setUpload_mes("");
|
||||
outbound.setUpload_sap("");
|
||||
iStIvtIostorinvService.save(outbound);
|
||||
// 4、插入明细表、分配表
|
||||
// 存在库存的集合
|
||||
ArrayList<String> ivtList = new ArrayList<>();
|
||||
List<StIvtIostorinvdis> needSaveDisList = new ArrayList<>();
|
||||
List<StIvtIostorinvdtl> needSaveDtlList = new ArrayList<>();
|
||||
for (int i = 0; i < outboundDisList.size(); i++) {
|
||||
//插入明细表
|
||||
String newDtlId = getStringId();
|
||||
StIvtIostorinvdis disRow = outboundDisList.get(i);
|
||||
// 校验是否存在库存
|
||||
StIvtStructivt structivt = structivtService.getOneByPcsn(disRow.getPcsn(), false);
|
||||
if (ObjectUtil.isNotEmpty(structivt)) {
|
||||
ivtList.add(structivt.getPcsn());
|
||||
}
|
||||
// 根据dis获取dtl(一个dis对应一个dtl【实际仓储中可能多对一】)
|
||||
StIvtIostorinvdtl outDtl = iostorinvdtlService.getById(disRow.getIostorinvdtl_id());
|
||||
StIvtIostorinvdtl oldDtl = outDtl;
|
||||
// 转换为冲销出库的手工入库明细
|
||||
// 新的明细id
|
||||
outDtl.setIostorinvdtl_id(newDtlId);
|
||||
// 新的单据id
|
||||
outDtl.setIostorinv_id(manualInStorageOrderId);
|
||||
outDtl.setSeq_no(BigDecimal.valueOf(i + 1));
|
||||
outDtl.setBill_status("30");
|
||||
outDtl.setReal_qty(BigDecimal.ZERO);
|
||||
outDtl.setSource_billdtl_id(oldDtl.getSource_billdtl_id());
|
||||
outDtl.setSource_bill_type(oldOutOrder.getBill_type());
|
||||
outDtl.setSource_bill_code(oldOutOrder.getBill_code());
|
||||
outDtl.setSource_bill_table("st_ivt_iostorinvdtl");
|
||||
outDtl.setAssign_qty(disRow.getPlan_qty());
|
||||
outDtl.setUnassign_qty(BigDecimal.ZERO);
|
||||
// 手工入库明细 后面批次插入
|
||||
needSaveDtlList.add(outDtl);
|
||||
disRow.setIostorinvdis_id(getStringId());
|
||||
disRow.setSeq_no(BigDecimal.ONE);
|
||||
disRow.setSect_id("");
|
||||
disRow.setSect_code("");
|
||||
disRow.setSect_name("");
|
||||
disRow.setWork_status("00");
|
||||
disRow.setReal_qty(BigDecimal.ZERO);
|
||||
disRow.setPoint_id(0L);
|
||||
disRow.setTask_id("");
|
||||
needSaveDisList.add(disRow);
|
||||
//将包装关系中对应的记录状态改为包装
|
||||
LambdaUpdateWrapper<PdmBiSubpackagerelation> upLam = new LambdaUpdateWrapper<>();
|
||||
upLam.set(PdmBiSubpackagerelation::getStatus, "1")
|
||||
.eq(PdmBiSubpackagerelation::getPackage_box_sn, disRow.getBox_no());
|
||||
if ("1001".equals(oldOutOrder.getBill_type())) {
|
||||
upLam.eq(PdmBiSubpackagerelation::getStatus, "3");
|
||||
}
|
||||
subpackagerelationService.update(upLam);
|
||||
}
|
||||
iostorinvdtlService.updateBatchById(needSaveDtlList);
|
||||
iostorinvdisService.updateBatchById(needSaveDisList);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,10 +248,10 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
.remark((String) whereJson.get("remark"))
|
||||
.bill_status((String) whereJson.get("bill_status"))
|
||||
.create_mode("01")
|
||||
.input_optid(Long.valueOf(currentUserId))
|
||||
.input_optid(currentUserId)
|
||||
.input_optname(nickName)
|
||||
.input_time(String.valueOf(DateUtil.parse(now)))
|
||||
.update_optid(Long.valueOf(currentUserId))
|
||||
.update_optid(currentUserId)
|
||||
.update_optname(nickName)
|
||||
.update_time(String.valueOf(DateUtil.parse(now)))
|
||||
.is_delete("0")
|
||||
@@ -496,7 +496,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
String now = DateUtil.now();
|
||||
|
||||
// 2. 更新主表信息
|
||||
mainRecord.setUpdate_optid(Long.valueOf(currentUserId));
|
||||
mainRecord.setUpdate_optid(currentUserId);
|
||||
mainRecord.setUpdate_optname(nickName);
|
||||
mainRecord.setUpdate_time(now);
|
||||
|
||||
@@ -751,10 +751,10 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
struct_name = map.get("struct_name");
|
||||
}
|
||||
StIvtIostorinvdis dis = StIvtIostorinvdis.builder()
|
||||
.sect_id(Long.valueOf(sect_id))
|
||||
.sect_id(sect_id)
|
||||
.sect_code(sect_code)
|
||||
.sect_name(sect_name)
|
||||
.struct_id(Long.valueOf(struct_id))
|
||||
.struct_id(struct_id)
|
||||
.struct_code(struct_code)
|
||||
.struct_name(struct_name)
|
||||
.build();
|
||||
@@ -791,7 +791,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
if ("09".equals(sectAttr.getSect_type_attr())) {
|
||||
isVirtual = true;
|
||||
String taskId = cn.hutool.core.util.IdUtil.getSnowflake(1, 1).nextIdStr();
|
||||
dis.setTask_id(Long.valueOf(taskId));
|
||||
dis.setTask_id(taskId);
|
||||
dis.setWork_status("01");
|
||||
}
|
||||
}
|
||||
@@ -809,7 +809,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
String taskId = task.createTask(taskForm);
|
||||
task.immediateNotifyAcs(taskId);
|
||||
|
||||
dis.setTask_id(Long.valueOf(taskId));
|
||||
dis.setTask_id(taskId);
|
||||
dis.setWork_status("01");
|
||||
}
|
||||
|
||||
@@ -864,13 +864,13 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
|
||||
if (dtlList.isEmpty()) {
|
||||
mst.setBill_status("40");
|
||||
mst.setDis_optid(Long.valueOf(currentUserId));
|
||||
mst.setDis_optid(currentUserId);
|
||||
mst.setDis_optname(nickName);
|
||||
mst.setDis_time(DateUtil.now());
|
||||
stIvtIostorinvMapper.updateById(mst);
|
||||
} else {
|
||||
mst.setBill_status("30");
|
||||
mst.setDis_optid(Long.valueOf(currentUserId));
|
||||
mst.setDis_optid(currentUserId);
|
||||
mst.setDis_optname(nickName);
|
||||
mst.setDis_time(DateUtil.now());
|
||||
stIvtIostorinvMapper.updateById(mst);
|
||||
@@ -882,7 +882,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
stIvtIostorinvdtlMapper.updateById(dtl);
|
||||
|
||||
mst.setBill_status("30");
|
||||
mst.setDis_optid(Long.valueOf(currentUserId));
|
||||
mst.setDis_optid(currentUserId);
|
||||
mst.setDis_optname(nickName);
|
||||
mst.setDis_time(DateUtil.now());
|
||||
stIvtIostorinvMapper.updateById(mst);
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package org.nl.wms.st.inbill.service.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/10
|
||||
*/
|
||||
@Data
|
||||
public class OutWriteOffVo {
|
||||
private String trans_code;
|
||||
private String is_writeoff;
|
||||
private String input_optname;
|
||||
private String input_time;
|
||||
private String stor_id;
|
||||
private String syscompanyid;
|
||||
private String writeoff_time;
|
||||
private String car_type;
|
||||
private String create_mode;
|
||||
private String bill_type;
|
||||
private String is_upload;
|
||||
private String upload_mes;
|
||||
private String consignee;
|
||||
private String receiver;
|
||||
private String total_qty;
|
||||
private String receiptphone;
|
||||
private String source_type;
|
||||
private String other_freight;
|
||||
private String sysdeptid;
|
||||
private String upload_sap;
|
||||
private String receiptaddress;
|
||||
private String input_optid;
|
||||
private String buss_type;
|
||||
private String upload_time;
|
||||
private String estimated_freight;
|
||||
private String detail_count;
|
||||
private String carno;
|
||||
private String out_stor_id;
|
||||
private String deliveryaddress;
|
||||
private String update_optid;
|
||||
private String stor_code;
|
||||
private String drivername;
|
||||
private String upload_optid;
|
||||
private String bill_code;
|
||||
private String dis_optname;
|
||||
private String order_number;
|
||||
private String confirm_optid;
|
||||
private String remark;
|
||||
private String writeoff_optid;
|
||||
private String dis_time;
|
||||
private String deliveryunit;
|
||||
private String total_weight;
|
||||
private String deliveryname;
|
||||
private String update_time;
|
||||
private String update_optname;
|
||||
private String driverphone;
|
||||
private String source_name;
|
||||
private String biz_date;
|
||||
private String contractno;
|
||||
private String deliveryphone;
|
||||
private String confirm_optname;
|
||||
private String is_overdue;
|
||||
private String run_freight;
|
||||
private String unload_freight;
|
||||
private String bill_status;
|
||||
private String dis_optid;
|
||||
private String confirm_time;
|
||||
private String is_delete;
|
||||
private String cust_code;
|
||||
private String iostorinv_id;
|
||||
private String logisticscompany;
|
||||
private String stor_name;
|
||||
private String io_type;
|
||||
private String source_id;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* 前端显示实体包
|
||||
* @Author: lyd
|
||||
* @Date: 2025/6/10
|
||||
*/
|
||||
package org.nl.wms.st.inbill.service.vo;
|
||||
@@ -9,6 +9,17 @@ import java.util.Map;
|
||||
* @Date: 2025/6/6
|
||||
*/
|
||||
public enum OutBillTypeEnum {
|
||||
SHIP_OUT("1001", "发货出库"),
|
||||
RE_CUT_OUT("1003", "改切出库"),
|
||||
TRANSFER_OUT("1004", "调拨出库"),
|
||||
UNBOXING_OUT("1005", "拆箱出库"),
|
||||
RE_INSPECTION_OUT("1006", "返检出库"),
|
||||
BEYOND_SERVICE_LIFE("1007", "超期报废"),
|
||||
RETURN_FOR_SCRAP("1008", "退货报废"),
|
||||
QUALITY_ISSUES_SCRAP("10010", "质量问题报废"),
|
||||
OTHER_SCRAP("1002", "其他报废"),
|
||||
SORTING_OUT("1011", "分拣出库"),
|
||||
MANUAL_OUT("1009", "手工出库")
|
||||
;
|
||||
|
||||
private final String code;
|
||||
|
||||
Reference in New Issue
Block a user