1.保存代码

feature-order-fix
x_z 2 years ago
parent 7459c2ff43
commit 6ee07ea460

@ -111,6 +111,7 @@ public class ConstantStatus {
public static final int FROM_UDISP = 7; //供应商平台 public static final int FROM_UDISP = 7; //供应商平台
public static final int FROM_PEACE_CHANGE = 8; //平衡补单 public static final int FROM_PEACE_CHANGE = 8; //平衡补单
public static final int FROM_COPY = 10; //单据复制 public static final int FROM_COPY = 10; //单据复制
public static final int FROM_COUNT = 10; //盘点单据转单
//DI类型 //DI类型

@ -27,4 +27,13 @@ public interface UnitMaintainDao {
UnitMaintainEntity selectByThirdSys(@Param("thirdIdSys") String thirdIdSys, @Param("thirdId") String thirdId); UnitMaintainEntity selectByThirdSys(@Param("thirdIdSys") String thirdIdSys, @Param("thirdId") String thirdId);
/**
*
*
* @param erpId
* @return
*/
UnitMaintainEntity selectByErpId(@Param("erpId") String erpId);
} }

@ -66,7 +66,7 @@ public class InvCountOrderDetail {
private Integer lossNum; private Integer lossNum;
/** /**
* 0 1 * 0 1 2
*/ */
private Integer status; private Integer status;

@ -24,4 +24,9 @@ public class FilterInvCountCodesRequest extends ListPageRequest {
*/ */
private String code; private String code;
/**
*
*/
private Integer status;
} }

@ -1,23 +1,33 @@
package com.glxp.api.admin.service.inventory.impl; package com.glxp.api.admin.service.inventory.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.admin.constant.Constant; import com.glxp.api.admin.constant.Constant;
import com.glxp.api.admin.dao.inventory.InvCountCodesDao; import com.glxp.api.admin.constant.ConstantStatus;
import com.glxp.api.admin.dao.inventory.InvCountOrderDao; import com.glxp.api.admin.constant.ConstantType;
import com.glxp.api.admin.dao.inventory.InvCountOrderDetailDao; import com.glxp.api.admin.dao.basic.BussinessTypeDao;
import com.glxp.api.admin.dao.inventory.InvProductDetailDao; import com.glxp.api.admin.dao.basic.UnitMaintainDao;
import com.glxp.api.admin.dao.inventory.*;
import com.glxp.api.admin.entity.auth.AuthAdmin; import com.glxp.api.admin.entity.auth.AuthAdmin;
import com.glxp.api.admin.entity.basic.BussinessTypeEntity;
import com.glxp.api.admin.entity.basic.UnitMaintainEntity;
import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseEntity;
import com.glxp.api.admin.entity.inventory.InvCountCodes; import com.glxp.api.admin.entity.inventory.InvCountCodes;
import com.glxp.api.admin.entity.inventory.InvCountOrder; import com.glxp.api.admin.entity.inventory.InvCountOrder;
import com.glxp.api.admin.entity.inventory.InvCountOrderDetail; import com.glxp.api.admin.entity.inventory.InvCountOrderDetail;
import com.glxp.api.admin.entity.inventory.InvCountSettingEntity;
import com.glxp.api.admin.req.inventory.FilterInvCountCodesRequest;
import com.glxp.api.admin.req.inventory.FilterInvCountOrderRequest; import com.glxp.api.admin.req.inventory.FilterInvCountOrderRequest;
import com.glxp.api.admin.res.inventory.InvCountOrderResponse; import com.glxp.api.admin.res.inventory.InvCountOrderResponse;
import com.glxp.api.admin.service.auth.CustomerService; import com.glxp.api.admin.service.auth.CustomerService;
import com.glxp.api.admin.service.inventory.InvCountOrderService; import com.glxp.api.admin.service.inventory.InvCountOrderService;
import com.glxp.api.admin.util.CustomUtil;
import com.glxp.api.admin.util.GennerOrderUtils; import com.glxp.api.admin.util.GennerOrderUtils;
import com.glxp.api.admin.util.MyStrUtil;
import com.glxp.api.admin.util.OrderNoTypeBean; import com.glxp.api.admin.util.OrderNoTypeBean;
import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
@ -27,6 +37,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -47,6 +58,12 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
private CustomerService customerService; private CustomerService customerService;
@Resource @Resource
private InvProductDetailDao invProductDetailDao; private InvProductDetailDao invProductDetailDao;
@Resource
private InvCountSettingDao invCountSettingDao;
@Resource
private BussinessTypeDao bussinessTypeDao;
@Resource
private UnitMaintainDao unitMaintainDao;
@Override @Override
public List<InvCountOrderResponse> filterList(FilterInvCountOrderRequest filterInvCountOrderRequest) { public List<InvCountOrderResponse> filterList(FilterInvCountOrderRequest filterInvCountOrderRequest) {
@ -161,12 +178,96 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
invCountCodesDao.resetCountFiledValue(invCountOrder.getOrderId()); invCountCodesDao.resetCountFiledValue(invCountOrder.getOrderId());
} else { } else {
//审核通过 //审核通过
//todo 根据单据详情生成相关单据 //根据单据详情生成相关单据
countOrderTransfer(invCountOrder);
} }
invCountOrderDao.updateByPrimaryKey(invCountOrder); invCountOrderDao.updateByPrimaryKey(invCountOrder);
return ResultVOUtils.success(); return ResultVOUtils.success();
} }
/**
*
*
* @param invCountOrder
*/
private void countOrderTransfer(InvCountOrder invCountOrder) {
List<InvCountSettingEntity> list = invCountSettingDao.filterList(null);
if (CollUtil.isEmpty(list)) {
log.error("未配置盘点单据设置参数,无法转单");
return;
}
List<InvCountOrderDetail> detailList = invCountOrderDetailDao.selectByOrderId(invCountOrder.getOrderId());
List<InvCountOrderDetail> inDetailList = new ArrayList<>();
List<InvCountOrderDetail> outDetailList = new ArrayList<>();
for (InvCountOrderDetail invCountOrderDetail : detailList) {
if (invCountOrderDetail.getStatus() == 0) {
//亏损,做出库单
outDetailList.add(invCountOrderDetail);
} else if (invCountOrderDetail.getStatus() == 1) {
//盈利,做入库单
inDetailList.add(invCountOrderDetail);
}
}
InvCountSettingEntity invCountSettingEntity = list.get(0);
if (CollUtil.isNotEmpty(inDetailList)) {
log.info("盘点单据:" + invCountOrder.getOrderId() + " 转入库单开始");
//查询盘点入库单据类型
BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getInAction());
log.info("盘点入库单据类型为:" + bussinessTypeEntity.getName() + " ,单据类型编码为:" + invCountSettingEntity.getInAction());
//构造单据数据
OrderEntity orderEntity = new OrderEntity();
orderEntity.setMainAction(ConstantType.TYPE_PUT);
orderEntity.setAction(invCountSettingEntity.getInAction());
orderEntity.setActDate(DateUtil.date().toString(DatePattern.NORM_DATETIME_PATTERN));
orderEntity.setCreateTime(orderEntity.getActDate());
orderEntity.setInvStorageCode(invCountOrder.getInvStorageCode());
orderEntity.setInvWarehouseCode(invCountOrder.getInvWarehouseCode());
//查询单据往来单位数据
UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectByErpId(bussinessTypeEntity.getDefaultUnit());
orderEntity.setFromCorpId(unitMaintainEntity.getErpId());
orderEntity.setFromCorp(unitMaintainEntity.getName());
orderEntity.setCorpOrderId(CustomUtil.getId() + "x");
orderEntity.setExportStatus(0); //设置导出状态为未导出
orderEntity.setContrastStatus(0);//设置erp校验状态为未校验
orderEntity.setReceiveStatus(0); //设置验收状态为未验收
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
orderEntity.setErpFk(null);//关联业务单据置空
orderEntity.setFromType(ConstantStatus.FROM_COUNT); //单据来源设置为盘点单据转单
orderEntity.setLocStorageCode(invCountOrder.getInvStorageCode());
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
//查找盘点码中标记为多的码
FilterInvCountCodesRequest codesRequest = new FilterInvCountCodesRequest();
codesRequest.setOrderIdFk(invCountOrder.getOrderId());
codesRequest.setStatus(1);
List<InvCountCodes> codesList = invCountCodesDao.filterList(codesRequest);
List<WarehouseEntity> warehouseEntities = new ArrayList<>(codesList.size());
codesList.forEach(invCountCodes -> {
WarehouseEntity warehouseEntity = new WarehouseEntity();
warehouseEntity.setCode(invCountCodes.getCode());
warehouseEntity.setRelId(invCountCodes.getProductId());
warehouseEntity.setAction(invCountSettingEntity.getInAction());
warehouseEntity.setMainAction(ConstantType.TYPE_PUT);
warehouseEntity.setActor(invCountOrder.getCreateUser());
warehouseEntities.add(warehouseEntity);
});
}
if (CollUtil.isNotEmpty(outDetailList)) {
log.info("盘点单据:" + invCountOrder.getOrderId() + " 转出库单开始");
//查询盘点入库单据类型
BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getOutAction());
log.info("盘点出库单据类型为:" + bussinessTypeEntity.getName() + " ,单据类型编码为:" + bussinessTypeEntity.getAction());
}
}
} }

@ -70,6 +70,9 @@ public class InvCountSettingServiceImpl implements InvCountSettingService {
if (existSetting()) { if (existSetting()) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "已存在盘点参数"); return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "已存在盘点参数");
} }
if (StrUtil.isBlank(invCountSettingEntity.getInAction()) || StrUtil.isBlank(invCountSettingEntity.getOutAction())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
invCountSettingDao.insert(invCountSettingEntity); invCountSettingDao.insert(invCountSettingEntity);
return ResultVOUtils.success(); return ResultVOUtils.success();
} }

@ -62,4 +62,9 @@
where ${thirdIdSys} = #{thirdId} where ${thirdIdSys} = #{thirdId}
</select> </select>
<select id="selectByErpId" resultType="com.glxp.api.admin.entity.basic.UnitMaintainEntity">
select *
from basic_corp
where erpId = #{erpId}
</select>
</mapper> </mapper>

@ -159,6 +159,9 @@
<if test="code != null and code != ''"> <if test="code != null and code != ''">
AND code like concat('%', #{code}, '%') AND code like concat('%', #{code}, '%')
</if> </if>
<if test="status != null">
AND status = #{status}
</if>
</where> </where>
</select> </select>

Loading…
Cancel
Save