缺量自动补单,单据分仓库,分用户,数据字段补充;

master
anthonyywj2 3 years ago
parent 77e7511157
commit 25348c43a4

@ -101,6 +101,7 @@ public class ConstantStatus {
public static final int ORDER_CHANGE_NORMAL_ADV_IN = 2; //补寄售转入
public static final int ORDER_CHANGE_ADVANCE_IN = 3; //补寄售入库
public static final int ORDER_CHANGE_ADVANCE_OUT = 4; //补寄售出库
public static final int ORDER_CHANGE_INNOR_NORMAL_IN = 5; //补调拨入库
}

@ -37,5 +37,10 @@ public class OrderEntity {
//补单单号
private String supplementNo;
private String ullageSupNo;
private Integer createUser;
private Integer reviewUser;
private boolean isError;
}

@ -31,4 +31,8 @@ public class StockOrderEntity {
//补单单号
private String supplementNo;
private Integer createUser;
private Integer reviewUser;
}

@ -24,4 +24,9 @@ public class OrderFilterRequest extends ListPageRequest {
private String customerId;
private String fromCorpId;
private String orderId;//业务单据ID手持终端上传上来的
private String ullageSupNo;
private Integer createUser;
private Integer reviewUser;
}

@ -30,4 +30,6 @@ public class StockOrderFilterRequest extends ListPageRequest {
private String orderIdFk;
private BigDecimal totalPrice;
private String locStorageCode;
private Integer createUser;
private Integer reviewUser;
}

@ -7,4 +7,6 @@ import lombok.Data;
public class StockOrderQueryRequest extends ListPageRequest {
private String thirdOrderFk;
private String billNo;
private Integer createUser;
private Integer reviewUser;
}

@ -204,7 +204,7 @@ public class OrderServiceImpl implements OrderService {
supplementOrder.setSupplementNo(order.getId());
supplementOrder.setId(supplementOrderNo);
//修改状态
supplementOrder.setStatus(1); //设置状态为等待处理
supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); //设置状态为补录单据
supplementOrder.setExportStatus(0); //设置导出状态为未导出
supplementOrder.setContrastStatus(0);//设置erp校验状态为未校验
supplementOrder.setReceiveStatus(0); //设置验收状态为未验收

@ -1,5 +1,6 @@
package com.glxp.sale.admin.thread;
import cn.hutool.core.util.StrUtil;
import com.glxp.sale.admin.constant.Constant;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.ConstantType;
@ -210,13 +211,33 @@ public class InvProductsTrService {
//普通出库补单-- //补采购入库或寄售转入单
public void addUseOutOrder(OrderEntity orderEntity, List<InvProductDetailEntity> invProductDetailEntities, List<BussinessChangeTypeEntity> bussinessChangeTypeEntities) {
BussinessChangeTypeEntity advChangeTypeEntity = null;
BussinessChangeTypeEntity norChangeTypeEntity = null;
BussinessChangeTypeEntity outChangeTypeEntity = null;
BussinessChangeTypeEntity innorChangeTypeEntity = null;
for (BussinessChangeTypeEntity bussinessChangeTypeEntity : bussinessChangeTypeEntities) {
if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_NORMAL_ADV_IN) {
advChangeTypeEntity = bussinessChangeTypeEntity;
} else if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_NORMAL_IN) {
outChangeTypeEntity = bussinessChangeTypeEntity;
} else if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_INNOR_NORMAL_IN) {
innorChangeTypeEntity = bussinessChangeTypeEntity;
}
}
List<WarehouseEntity> warehouseEntities = codesService.findByReceiptId(orderEntity.getId());
List<WarehouseEntity> inList = new ArrayList<>();
List<WarehouseEntity> preiInList = new ArrayList<>();
for (WarehouseEntity warehouseEntity : warehouseEntities) {
/**
*
* if1=1
* {}
* else>1
* {}
*/
InvWarehouseEntity locWarehouseEntity = invWarehouseService.selectByCode(warehouseEntity.getLocStorageCode());
if (isAdavnce(warehouseEntity)) {//补寄售转入
if (locWarehouseEntity.getLevel() == 1 && isAdavnce(warehouseEntity)) {//补寄售转入
//获取普通出入库结余数量
int actCount = getActCount(warehouseEntity);
@ -231,7 +252,21 @@ public class InvProductsTrService {
} else {
count = warehouseEntity.getCount();
}
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findDefault(true, true);
/**
*
* 1=
*/
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(advChangeTypeEntity.getScAction());
InvWarehouseEntity invWarehouseEntity;
if (!StrUtil.isEmpty(bussinessTypeEntity.getStorageCode())) {
invWarehouseEntity = invWarehouseService.selectByCode(bussinessTypeEntity.getStorageCode());
if (!invWarehouseEntity.getAdvanceType() || invWarehouseEntity.getLevel() > 1) {
//todo 补单失败,当前仓库设置错误
orderEntity.setRemark("该补录单,单据类型" + bussinessTypeEntity.getName() + "当前仓库设置错误,无法补单");
orderEntity.setError(true);
}
} else
invWarehouseEntity = invWarehouseService.findDefault(true, true);
int invCount = getCountByOrder(null, warehouseEntity.getCode(), warehouseEntity.getSupId(), invWarehouseEntity.getCode());
if (invCount <= 0) {
invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), invWarehouseEntity.getCode());
@ -267,20 +302,23 @@ public class InvProductsTrService {
count = warehouseEntity.getCount();
}
//获取当前仓库
InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(warehouseEntity.getLocStorageCode());
int invCount = 0;
if (invWarehouseEntity.getPcode() != null && !invWarehouseEntity.getPcode().equals("0")) {
//上级仓库
InvWarehouseEntity pInWarehouseEntity = invWarehouseService.selectByCode(invWarehouseEntity.getPcode());
if (locWarehouseEntity.getLevel() > 1) {//补调拨入库
/**
*
*/
InvWarehouseEntity pInWarehouseEntity = invWarehouseService.selectByCode(locWarehouseEntity.getPcode());
warehouseEntity.setFromCorp(pInWarehouseEntity.getName());
warehouseEntity.setFromCorpId(pInWarehouseEntity.getCode());
invCount = getCountByOrder(null, warehouseEntity.getCode(), warehouseEntity.getSupId(), invWarehouseEntity.getPcode());
invCount = getCountByOrder(null, warehouseEntity.getCode(), warehouseEntity.getSupId(), locWarehouseEntity.getPcode());
if (invCount <= 0) {
invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), invWarehouseEntity.getPcode());
invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), locWarehouseEntity.getPcode());
}
} else {
norChangeTypeEntity = innorChangeTypeEntity;
} else { //补供应商入库
/**
*
*/
//供应商
warehouseEntity.setFromCorpId(warehouseEntity.getSupId());
BasicUnitMaintainEntity basicUnitMaintainEntity = basicUnitMaintainService.selectByErpId(warehouseEntity.getSupId());
@ -289,6 +327,7 @@ public class InvProductsTrService {
if (invCount <= 0) {
invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), null);
}
norChangeTypeEntity = outChangeTypeEntity;
}
if (invCount > 0) {
if (count > invCount) {
@ -306,15 +345,7 @@ public class InvProductsTrService {
}
}
BussinessChangeTypeEntity advChangeTypeEntity = null;
BussinessChangeTypeEntity norChangeTypeEntity = null;
for (BussinessChangeTypeEntity bussinessChangeTypeEntity : bussinessChangeTypeEntities) {
if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_NORMAL_ADV_IN) {
advChangeTypeEntity = bussinessChangeTypeEntity;
} else if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_NORMAL_IN) {
norChangeTypeEntity = bussinessChangeTypeEntity;
}
}
if (inList.size() > 0) {
List<WarehouseEntity> temps = filterMapCodes(inList);
buildInOrder(norChangeTypeEntity, temps, orderEntity); //3.生成采购入库流转单据
@ -779,7 +810,12 @@ public class InvProductsTrService {
outOrder.setActDate(DateUtil.getBeforeDay(outOrder.getActDate(), bussinessChangeTypeEntity.getBeforeTime()));
outOrder.setAction(bussinessChangeTypeEntity.getScAction());
outOrder.setMainAction(ConstantType.TYPE_PUT);
outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
if (orderEntity.isError()) {
outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL);
} else {
outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
}
outOrder.setRemark(orderEntity.getRemark());
outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID);
outOrder.setFromCorp(temps.get(0).getFromCorp());
outOrder.setFromCorpId(temps.get(0).getFromCorpId());

@ -126,6 +126,7 @@ public class IoTransInoutService {
orderSaveRequest.setCorpOrderId(warehouseEntity.getCorpOrderId());
orderSaveRequest.setFromCorpId(warehouseEntity.getFromCorpId());
orderSaveRequest.setReceiveStatus(0);
orderSaveRequest.setLocStorageCode(warehouseEntity.getLocStorageCode());
orderSaveRequest.setMainAction(warehouseEntity.getMainAction());
orderSaveRequest.setFromCorp(warehouseEntity.getFromCorp());
orderSaveRequest.setFromType(ConstantStatus.FROM_WEBNEW);

@ -32,7 +32,8 @@
<insert id="insertOrder" keyProperty="id" parameterType="com.glxp.sale.admin.entity.inout.OrderEntity">
insert INTO io_order(id, action, corpOrderId, actDate, fromCorpId, actor, mainAction,
fromCorp, status, remark, exportStatus, fromType, contrastStatus, signStatus,
receiveStatus, erpFk, stockCheckFk, customerId, supId, exportFilePath,locStorageCode,supplementNo)
receiveStatus, erpFk, stockCheckFk, customerId, supId,
exportFilePath, locStorageCode, supplementNo, ullageSupNo, createUser, reviewUser)
values (#{id},
#{action},
#{corpOrderId},
@ -50,7 +51,8 @@
#{receiveStatus},
#{erpFk},
#{stockCheckFk},
#{customerId}, #{supId}, #{exportFilePath},#{locStorageCode},#{supplementNo})
#{customerId}, #{supId}, #{exportFilePath}, #{locStorageCode}, #{supplementNo}
, #{ullageSupNo}, #{createUser}, #{reviewUser})
</insert>
<update id="updateOrder" parameterType="com.glxp.sale.admin.entity.inout.OrderEntity">
UPDATE io_order
@ -77,7 +79,9 @@
<if test="invWarehouseCode != null">invWarehouseCode=#{invWarehouseCode},</if>
<if test="locStorageCode != null">locStorageCode=#{locStorageCode},</if>
<if test="supplementNo != null">supplementNo=#{supplementNo},</if>
<if test="ullageSupNo != null">ullageSupNo=#{ullageSupNo},</if>
<if test="createUser != null">createUser=#{createUser},</if>
<if test="reviewUser != null">reviewUser=#{reviewUser},</if>
</trim>
WHERE id = #{id}
</update>
@ -189,6 +193,15 @@
<if test="customerId != '' and customerId!=null">
and customerId =#{customerId}
</if>
<if test=" createUser!=null">
and createUser =#{createUser}
</if>
<if test=" reviewUser!=null">
and reviewUser =#{reviewUser}
</if>
<if test="ullageSupNo != '' and ullageSupNo!=null">
and ullageSupNo =#{ullageSupNo}
</if>
</where>
ORDER BY actDate DESC
@ -244,6 +257,15 @@
<if test="customerId != '' and customerId!=null">
and customerId =#{customerId}
</if>
<if test=" createUser!=null">
and createUser =#{createUser}
</if>
<if test=" reviewUser!=null">
and reviewUser =#{reviewUser}
</if>
<if test="ullageSupNo != '' and ullageSupNo!=null">
and ullageSupNo =#{ullageSupNo}
</if>
</where>
ORDER BY actDate DESC
@ -293,7 +315,15 @@
<if test="endTime!=null and endTime!=''">
<![CDATA[ and DATE_FORMAT(actDate, '%Y-%m-%d') <= DATE_FORMAT(#{endTime}, '%Y-%m-%d') ]]>
</if>
<if test=" createUser!=null">
and createUser =#{createUser}
</if>
<if test=" reviewUser!=null">
and reviewUser =#{reviewUser}
</if>
<if test="ullageSupNo != '' and ullageSupNo!=null">
and ullageSupNo =#{ullageSupNo}
</if>
</where>
</select>
@ -317,6 +347,15 @@
<if test="fromCorpId != '' and fromCorpId!=null">
and `fromCorpId` =#{fromCorpId}
</if>
<if test=" createUser!=null">
and createUser =#{createUser}
</if>
<if test=" reviewUser!=null">
and reviewUser =#{reviewUser}
</if>
<if test="ullageSupNo != '' and ullageSupNo!=null">
and ullageSupNo =#{ullageSupNo}
</if>
</where>
limit 1
</select>

@ -24,7 +24,8 @@
parameterType="com.glxp.sale.admin.entity.inout.StockOrderEntity">
insert INTO stock_order(id, billNo, billdate, corpId, corpName, billType, billFlag,
thirdSysFk, status, statusInfo, type, sourceType,
printStatus, unitIdFk, customerId, thirdOrderFk, orderIdFk, totalPrice, locStorageCode,supplementNo)
printStatus, unitIdFk, customerId, thirdOrderFk, orderIdFk,
totalPrice, locStorageCode, supplementNo, createUser, reviewUser)
values (#{id},
#{billNo},
#{billdate},
@ -38,7 +39,7 @@
#{type},
#{sourceType},
#{printStatus}, #{unitIdFk}, #{customerId}, #{thirdOrderFk}, #{orderIdFk}, #{totalPrice},
#{locStorageCode},#{supplementNo})
#{locStorageCode}, #{supplementNo}, #{createUser}, #{reviewUser})
</insert>
<update id="updateById" parameterType="com.glxp.sale.admin.entity.inout.StockOrderEntity">
UPDATE stock_order
@ -62,7 +63,8 @@
<if test="totalPrice != null">totalPrice=#{totalPrice},</if>
<if test="locStorageCode != null">locStorageCode=#{locStorageCode},</if>
<if test="supplementNo != null">supplementNo=#{supplementNo},</if>
<if test="createUser != null">createUser=#{createUser},</if>
<if test="reviewUser != null">reviewUser=#{reviewUser},</if>
</trim>
WHERE id = #{id}
</update>
@ -150,6 +152,12 @@
<if test="locStorageCode != '' and locStorageCode!=null">
and locStorageCode = #{locStorageCode}
</if>
<if test="createUser!=null">
and createUser = #{createUser}
</if>
<if test="reviewUser!=null">
and reviewUser = #{reviewUser}
</if>
<if test="startTime!=null and startTime!=''">
<![CDATA[ and DATE_FORMAT(billdate, '%Y-%m-%d')>= DATE_FORMAT(#{startTime}, '%Y-%m-%d') ]]>
</if>
@ -188,7 +196,12 @@
<if test="orderIdFk != '' and orderIdFk !=null">
and orderIdFk =#{orderIdFk}
</if>
<if test="createUser!=null">
and createUser = #{createUser}
</if>
<if test="reviewUser!=null">
and reviewUser = #{reviewUser}
</if>
</where>
limit 1
</select>
@ -219,6 +232,9 @@
</where>
</select>
<select id="selectSupplementOrderList" resultType="com.glxp.sale.admin.entity.inout.StockOrderEntity">
select billNo from stock_order where supplementNo is null or supplementNo = ''
select billNo
from stock_order
where supplementNo is null
or supplementNo = ''
</select>
</mapper>

@ -1,10 +1,26 @@
create table auth_license
(
id varchar(36) not null,
appid varchar(36) not null,
name varchar(100),
api_key varchar(64),
secret_key varchar(2000),
create_date datetime,
constraint pk_auth_license primary key (id)
);
alter table io_order add (
ullageSupNo VARCHAR(128) NULL DEFAULT NULL COMMENT '缺量补单单号',
createUser int NULL DEFAULT NULL COMMENT '创建用户ID',
reviewUser int NULL DEFAULT NULL COMMENT '审核用户ID'
);
alter table stock_order add (
createUser int NULL DEFAULT NULL COMMENT '创建用户ID',
reviewUser int NULL DEFAULT NULL COMMENT '审核用户ID'
);
create table auth_license ( id varchar(36) not null,
appid varchar(36) not null,
name varchar(100),
api_key varchar(64),
secret_key varchar(2000),
create_date datetime,
constraint pk_auth_license primary key (id)
);
Loading…
Cancel
Save