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

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_NORMAL_ADV_IN = 2; //补寄售转入
public static final int ORDER_CHANGE_ADVANCE_IN = 3; //补寄售入库 public static final int ORDER_CHANGE_ADVANCE_IN = 3; //补寄售入库
public static final int ORDER_CHANGE_ADVANCE_OUT = 4; //补寄售出库 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 supplementNo;
private String ullageSupNo;
private Integer createUser;
private Integer reviewUser;
private boolean isError;
} }

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

@ -24,4 +24,9 @@ public class OrderFilterRequest extends ListPageRequest {
private String customerId; private String customerId;
private String fromCorpId; private String fromCorpId;
private String orderId;//业务单据ID手持终端上传上来的 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 String orderIdFk;
private BigDecimal totalPrice; private BigDecimal totalPrice;
private String locStorageCode; private String locStorageCode;
private Integer createUser;
private Integer reviewUser;
} }

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

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

@ -1,5 +1,6 @@
package com.glxp.sale.admin.thread; 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.Constant;
import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.ConstantType; 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) { 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> warehouseEntities = codesService.findByReceiptId(orderEntity.getId());
List<WarehouseEntity> inList = new ArrayList<>(); List<WarehouseEntity> inList = new ArrayList<>();
List<WarehouseEntity> preiInList = new ArrayList<>(); List<WarehouseEntity> preiInList = new ArrayList<>();
for (WarehouseEntity warehouseEntity : warehouseEntities) { 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); int actCount = getActCount(warehouseEntity);
@ -231,7 +252,21 @@ public class InvProductsTrService {
} else { } else {
count = warehouseEntity.getCount(); 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()); int invCount = getCountByOrder(null, warehouseEntity.getCode(), warehouseEntity.getSupId(), invWarehouseEntity.getCode());
if (invCount <= 0) { if (invCount <= 0) {
invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), invWarehouseEntity.getCode()); invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), invWarehouseEntity.getCode());
@ -267,20 +302,23 @@ public class InvProductsTrService {
count = warehouseEntity.getCount(); count = warehouseEntity.getCount();
} }
//获取当前仓库
InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(warehouseEntity.getLocStorageCode());
int invCount = 0; int invCount = 0;
if (invWarehouseEntity.getPcode() != null && !invWarehouseEntity.getPcode().equals("0")) { if (locWarehouseEntity.getLevel() > 1) {//补调拨入库
//上级仓库 /**
*
InvWarehouseEntity pInWarehouseEntity = invWarehouseService.selectByCode(invWarehouseEntity.getPcode()); */
InvWarehouseEntity pInWarehouseEntity = invWarehouseService.selectByCode(locWarehouseEntity.getPcode());
warehouseEntity.setFromCorp(pInWarehouseEntity.getName()); warehouseEntity.setFromCorp(pInWarehouseEntity.getName());
warehouseEntity.setFromCorpId(pInWarehouseEntity.getCode()); 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) { 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()); warehouseEntity.setFromCorpId(warehouseEntity.getSupId());
BasicUnitMaintainEntity basicUnitMaintainEntity = basicUnitMaintainService.selectByErpId(warehouseEntity.getSupId()); BasicUnitMaintainEntity basicUnitMaintainEntity = basicUnitMaintainService.selectByErpId(warehouseEntity.getSupId());
@ -289,6 +327,7 @@ public class InvProductsTrService {
if (invCount <= 0) { if (invCount <= 0) {
invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), null); invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), null);
} }
norChangeTypeEntity = outChangeTypeEntity;
} }
if (invCount > 0) { if (invCount > 0) {
if (count > invCount) { 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) { if (inList.size() > 0) {
List<WarehouseEntity> temps = filterMapCodes(inList); List<WarehouseEntity> temps = filterMapCodes(inList);
buildInOrder(norChangeTypeEntity, temps, orderEntity); //3.生成采购入库流转单据 buildInOrder(norChangeTypeEntity, temps, orderEntity); //3.生成采购入库流转单据
@ -779,7 +810,12 @@ public class InvProductsTrService {
outOrder.setActDate(DateUtil.getBeforeDay(outOrder.getActDate(), bussinessChangeTypeEntity.getBeforeTime())); outOrder.setActDate(DateUtil.getBeforeDay(outOrder.getActDate(), bussinessChangeTypeEntity.getBeforeTime()));
outOrder.setAction(bussinessChangeTypeEntity.getScAction()); outOrder.setAction(bussinessChangeTypeEntity.getScAction());
outOrder.setMainAction(ConstantType.TYPE_PUT); outOrder.setMainAction(ConstantType.TYPE_PUT);
if (orderEntity.isError()) {
outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL);
} else {
outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_UN); outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
}
outOrder.setRemark(orderEntity.getRemark());
outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID);
outOrder.setFromCorp(temps.get(0).getFromCorp()); outOrder.setFromCorp(temps.get(0).getFromCorp());
outOrder.setFromCorpId(temps.get(0).getFromCorpId()); outOrder.setFromCorpId(temps.get(0).getFromCorpId());

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

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

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

@ -1,10 +1,26 @@
create table auth_license
(
create table auth_license ( id varchar(36) not null, id varchar(36) not null,
appid varchar(36) not null, appid varchar(36) not null,
name varchar(100), name varchar(100),
api_key varchar(64), api_key varchar(64),
secret_key varchar(2000), secret_key varchar(2000),
create_date datetime, create_date datetime,
constraint pk_auth_license primary key (id) 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'
);

Loading…
Cancel
Save