1.提交设置扫码补单单据类型接口

2.提交补单功能代码
3.相关实体类添加所需字段和注释
4.调整已验收单据列表接口,返回值增加判断是否可以补单标识
master
MrZhai 3 years ago
parent c16b975862
commit 524b22317e

@ -1,10 +1,10 @@
package com.glxp.sale.admin.controller.basic;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.glxp.sale.admin.constant.Constant;
import com.glxp.sale.admin.entity.auth.AuthAdmin;
import com.glxp.sale.admin.entity.basic.BussinessLocalTypeEntity;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.exception.JsonException;
@ -22,7 +22,6 @@ import com.glxp.sale.admin.util.FileUtils;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
@ -33,8 +32,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
/**
*
@ -189,4 +186,19 @@ public class BussinessTypeController {
return ResultVOUtils.success("导入成功!");
}
/**
*
*
* @return
*/
@GetMapping("/warehouse/bussinessType/candidateBussinessType")
public BaseResponse candidateBussinessType(String id) {
if (StrUtil.isBlank(id)) {
return ResultVOUtils.error(ResultEnum.DATA_ERROR);
}
//查询补单单据类型
return ResultVOUtils.success(bussinessTypeService.candidateBussinessType(id));
}
}

@ -1,30 +1,21 @@
package com.glxp.sale.admin.controller.inout;
import com.alibaba.fastjson.JSON;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.glxp.sale.admin.constant.Constant;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.controller.inout.utils.ContrastErpUtil;
import com.glxp.sale.admin.controller.inout.utils.DataTransUtil;
import com.glxp.sale.admin.controller.inout.utils.InoutUtils;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.inout.*;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.entity.udid.UdiEntity;
import com.glxp.sale.admin.httpclient.ErpOrderClient;
import com.glxp.sale.admin.req.inout.*;
import com.glxp.sale.admin.req.param.SystemParamConfigRequest;
import com.glxp.sale.admin.res.PageSimpleResponse;
import com.glxp.sale.admin.service.basic.BussinessTypeService;
import com.glxp.sale.admin.service.basic.UdiInfoService;
import com.glxp.sale.admin.service.basic.UdiRelevanceService;
import com.glxp.sale.admin.service.inout.*;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.thread.InvProductsTrService;
import com.glxp.sale.admin.thread.IoTransInoutService;
import com.glxp.sale.admin.util.CustomUtil;
import com.glxp.sale.admin.util.FileUtils;
import com.glxp.sale.admin.util.FilterUdiUtils;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
@ -395,5 +386,20 @@ public class OrderController {
return docids;
}
/**
*
*
* @param billNo
* @return
*/
@GetMapping("/udiwms/stock/order/supplementOrder")
public BaseResponse supplementOrder(@RequestParam("billNo") String billNo) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.DATA_ERROR);
}
return orderService.supplementOrder(billNo);
}
}

@ -1,36 +1,24 @@
package com.glxp.sale.admin.controller.inout;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.PageInfo;
import com.glxp.sale.admin.constant.Constant;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.IncodeStatus;
import com.glxp.sale.admin.controller.inout.inventory.InvPrintController;
import com.glxp.sale.admin.controller.inout.utils.ContrastErpUtil;
import com.glxp.sale.admin.controller.inout.utils.InoutUtils;
import com.glxp.sale.admin.entity.auth.AuthAdmin;
import com.glxp.sale.admin.entity.basic.StockPrinttREntity;
import com.glxp.sale.admin.entity.basic.UdiInfoEntity;
import com.glxp.sale.admin.entity.basic.StockPrintEntity;
import com.glxp.sale.admin.entity.basic.UdiRelevanceEntity;
import com.glxp.sale.admin.entity.basic.StockPrinttREntity;
import com.glxp.sale.admin.entity.info.CompanyEntity;
import com.glxp.sale.admin.entity.inout.*;
import com.glxp.sale.admin.entity.inventory.InCodeLogEntity;
import com.glxp.sale.admin.entity.inout.StockOrderDetailEntity;
import com.glxp.sale.admin.entity.inout.StockOrderEntity;
import com.glxp.sale.admin.entity.inout.StockQRCodeTextEntity;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.entity.thrsys.ThrOrderDetailEntity;
import com.glxp.sale.admin.entity.thrsys.ThrOrderEntity;
import com.glxp.sale.admin.entity.udid.UdiEntity;
import com.glxp.sale.admin.exception.JsonException;
import com.glxp.sale.admin.httpclient.ErpOrderClient;
import com.glxp.sale.admin.req.inout.*;
import com.glxp.sale.admin.req.inventory.PostStockPrintRequest;
import com.glxp.sale.admin.req.param.SystemParamConfigRequest;
import com.glxp.sale.admin.req.thrsys.FilterThrOrderDetailRequest;
import com.glxp.sale.admin.req.thrsys.FilterThrOrderRequest;
import com.glxp.sale.admin.res.PageSimpleResponse;
import com.glxp.sale.admin.res.basic.UdiRelevanceResponse;
import com.glxp.sale.admin.res.inout.ErpOrderResponse;
import com.glxp.sale.admin.res.inout.StockOrderResponse;
import com.glxp.sale.admin.service.auth.AuthAdminService;
import com.glxp.sale.admin.service.basic.UdiInfoService;
import com.glxp.sale.admin.service.basic.UdiRelevanceService;
@ -39,30 +27,24 @@ import com.glxp.sale.admin.service.inout.*;
import com.glxp.sale.admin.service.inventory.InCodeLogService;
import com.glxp.sale.admin.service.inventory.InvStockPrintService;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.util.*;
import com.glxp.sale.admin.util.DateUtil;
import com.glxp.sale.admin.util.StockOrderBillNoUtils;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
public class StockOrderController {
@ -96,6 +78,8 @@ public class StockOrderController {
InCodeLogService inCodeLogService;
@Resource
CompanyService companyService;
@Resource
OrderService orderService;
@GetMapping("/udiwms/stock/order/error")
public BaseResponse listStockOrderNoDealWith(StockOrderFilterRequest stockOrderFilterRequest) {
@ -277,9 +261,12 @@ public class StockOrderController {
stockOrderEntityList = stockOrderService.filterListOr(stockOrderFilterRequest);
PageInfo<StockOrderEntity> pageInfo;
pageInfo = new PageInfo<>(stockOrderEntityList);
PageSimpleResponse<StockOrderEntity> pageSimpleResponse = new PageSimpleResponse<>();
//判断订单是否可以补单
List<StockOrderResponse> resultList = orderService.checkSupplementOrder(stockOrderEntityList);
PageSimpleResponse<StockOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(stockOrderEntityList);
pageSimpleResponse.setList(resultList);
return ResultVOUtils.success(pageSimpleResponse);
}

@ -24,5 +24,21 @@ public interface BussinessTypeDao {
boolean deleteById(@Param("id") String id);
BussinessTypeEntity selectByAction(String action);
/**
*
*
* @param billNo
* @return
*/
String selectEnableSupplementOrder(String billNo);
/**
*
*
* @param mainAction
* @return
*/
List<BussinessTypeEntity> selectCandidateBussinsessTypes(String mainAction);
}

@ -10,6 +10,8 @@ import java.util.List;
@Mapper
public interface CodesDao {
WarehouseEntity getByCorpOrderId(String corpOrderId);
List<WarehouseEntity> listWarehouse(WarehouseQueryRequest warehouseQueryRequest);
boolean insertWarehouse(WarehouseEntity warehouseEntity);

@ -1,14 +1,13 @@
package com.glxp.sale.admin.dao.inout;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.glxp.sale.admin.entity.inout.StockOrderEntity;
import com.glxp.sale.admin.entity.inout.StockOrderPrintEntity;
import com.glxp.sale.admin.req.inout.StockOrderFilterRequest;
import com.glxp.sale.admin.req.inout.StockOrderQueryRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface StockOrderDao {
@ -30,6 +29,9 @@ public interface StockOrderDao {
List<StockOrderEntity> filterListOr(StockOrderFilterRequest stockOrderFilterRequest);
StockOrderEntity findOne(StockOrderFilterRequest stockOrderFilterRequest);
List<StockOrderPrintEntity> listOrderPrint(StockOrderFilterRequest stockOrderFilterRequest);
void updateSupplementNoByBillNo(@Param("billNo") String billNo, @Param("supplementOrderNo") String supplementOrderNo);
}

@ -20,4 +20,5 @@ public interface InvWarehouseDao {
boolean deleteById(@Param("id") String id);
String getNameByCode(@Param("fromCorpId") String fromCorpId);
}

@ -38,5 +38,7 @@ public class BussinessTypeEntity {
private int corpType;
private String storageCode;
//补单类型
private String supplementOrderType;
}

@ -35,4 +35,7 @@ public class OrderEntity {
private String invWarehouseCode;
private String locStorageCode;
//补单单号
private String supplementNo;
}

@ -28,4 +28,7 @@ public class StockOrderEntity {
private String orderIdFk;
private BigDecimal totalPrice;
private String locStorageCode;
//补单单号
private String supplementNo;
}

@ -41,4 +41,10 @@ public class BussinessTypResponse {
private boolean secCheckChange;
private int corpType;
private String storageCode;
//补单类型
private String supplementOrderType;
//启用默认补单
private boolean enableSupplementOrder;
}

@ -0,0 +1,11 @@
package com.glxp.sale.admin.res.inout;
import com.glxp.sale.admin.entity.inout.StockOrderEntity;
import lombok.Data;
@Data
public class StockOrderResponse extends StockOrderEntity {
private boolean enableSupplementOrder;
}

@ -30,4 +30,12 @@ public interface BussinessTypeService {
boolean updateBussinessType(BussinessTypeEntity bussinessTypeEntity);
boolean deleteById(String id);
/**
*
*
* @param id
* @return
*/
List<BussinessTypeEntity> candidateBussinessType(String id);
}

@ -1,6 +1,7 @@
package com.glxp.sale.admin.service.basic.impl;
import com.github.pagehelper.PageHelper;
import com.glxp.sale.admin.constant.TypeConstant;
import com.glxp.sale.admin.dao.basic.BussinessTypeDao;
import com.glxp.sale.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
@ -118,4 +119,16 @@ public class BussinessTypeServiceImpl implements BussinessTypeService {
public boolean deleteById(String id) {
return bussinessTypeDao.deleteById(id);
}
@Override
public List<BussinessTypeEntity> candidateBussinessType(String id) {
BussinessTypeEntity rawData = bussinessTypeDao.selectById(id);
String mainAction;
if (rawData.getMainAction().equals(TypeConstant.TYPE_OUT)) {
mainAction = TypeConstant.TYPE_PUT;
} else {
mainAction = TypeConstant.TYPE_OUT;
}
return bussinessTypeDao.selectCandidateBussinsessTypes(mainAction);
}
}

@ -1,10 +1,12 @@
package com.glxp.sale.admin.service.inout;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.StockOrderEntity;
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
import com.glxp.sale.admin.req.inout.OrderFilterRequest;
import com.glxp.sale.admin.req.inout.OrderQueryRequest;
import org.apache.ibatis.annotations.Param;
import com.glxp.sale.admin.res.inout.StockOrderResponse;
import com.glxp.sale.common.res.BaseResponse;
import java.util.List;
@ -51,4 +53,20 @@ public interface OrderService {
List<OrderEntity> filterListByOrder(List<String> orderList);
List<OrderEntity> filterListByCode(List<WarehouseEntity> warehouseEntityList);
/**
*
*
* @param billNo
* @return
*/
BaseResponse supplementOrder(String billNo);
/**
*
*
* @param stockOrderEntityList
* @return
*/
List<StockOrderResponse> checkSupplementOrder(List<StockOrderEntity> stockOrderEntityList);
}

@ -1,19 +1,34 @@
package com.glxp.sale.admin.service.inout.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.sale.admin.dao.inout.OrderDao;
import com.glxp.sale.admin.dao.inout.WarehouseDao;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.dao.basic.BussinessTypeDao;
import com.glxp.sale.admin.dao.inout.*;
import com.glxp.sale.admin.dao.inventory.InvWarehouseDao;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.StockOrderEntity;
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
import com.glxp.sale.admin.req.inout.OrderFilterRequest;
import com.glxp.sale.admin.req.inout.OrderQueryRequest;
import com.glxp.sale.admin.res.inout.StockOrderResponse;
import com.glxp.sale.admin.service.inout.OrderService;
import com.glxp.sale.admin.util.CustomUtil;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Slf4j
@Service
public class OrderServiceImpl implements OrderService {
@ -21,6 +36,16 @@ public class OrderServiceImpl implements OrderService {
OrderDao orderDao;
@Resource
WarehouseDao warehouseDao;
@Resource
BussinessTypeDao bussinessTypeDao;
@Resource
StockOrderDao stockOrderDao;
@Resource
InvWarehouseDao invWarehouseDao;
@Resource
CodesDao codesDao;
@Resource
CodesTempDao codesTempDao;
@Override
public List<OrderEntity> listOrders(OrderQueryRequest orderQueryRequest) {
@ -158,5 +183,83 @@ public class OrderServiceImpl implements OrderService {
return orderDao.filterListByCode(warehouseEntityList);
}
@Override
public BaseResponse supplementOrder(String billNo) {
//查询订单数据
OrderFilterRequest orderFilterRequest = new OrderFilterRequest();
orderFilterRequest.setId(billNo);
OrderEntity order = orderDao.findOne(orderFilterRequest);
//查询此类型单据是否可以补单
BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(order.getAction());
if (StrUtil.isBlank(bussinessTypeEntity.getSupplementOrderType())) {
//此类型单据不可补单
return ResultVOUtils.error(ResultEnum.valueOf("此类型单据不可补单"));
}
OrderEntity supplementOrder = new OrderEntity();
BeanUtil.copyProperties(order, supplementOrder);
//生成补单单号
String supplementOrderNo = CustomUtil.getId();
supplementOrder.setSupplementNo(order.getId());
supplementOrder.setId(supplementOrderNo);
//修改状态
supplementOrder.setStatus(1); //设置状态为等待处理
supplementOrder.setExportStatus(0); //设置导出状态为未导出
supplementOrder.setContrastStatus(0);//设置erp校验状态为未校验
supplementOrder.setReceiveStatus(0); //设置验收状态为未验收
//修改往来单位及当前库存号
supplementOrder.setFromCorpId(order.getLocStorageCode());
supplementOrder.setLocStorageCode(order.getFromCorpId());
String name = invWarehouseDao.getNameByCode(order.getFromCorpId());
supplementOrder.setFromCorp(name);
supplementOrder.setFromType(ConstantStatus.FROM_CHANGE);
//复制码表
WarehouseEntity code = codesDao.getByCorpOrderId(order.getCorpOrderId());
WarehouseEntity supplementCode = new WarehouseEntity();
BeanUtil.copyProperties(code, supplementCode);
supplementCode.setFromCorpId(supplementOrder.getFromCorpId());
supplementCode.setFromCorp(supplementOrder.getFromCorp());
supplementCode.setLocStorageCode(supplementCode.getLocStorageCode());
supplementCode.setOrderId(supplementOrderNo);
//查询补单设置
supplementCode.setAction(bussinessTypeEntity.getSupplementOrderType());
BussinessTypeEntity supplementType = bussinessTypeDao.selectByAction(bussinessTypeEntity.getSupplementOrderType());
supplementCode.setMainAction(supplementType.getMainAction());
supplementCode.setId(null);
//更新数据
try {
orderDao.insertOrder(supplementOrder);
//更新配货单表对应单据的补单单号
stockOrderDao.updateSupplementNoByBillNo(billNo, supplementOrderNo);
codesTempDao.insertCodesTempSingle(supplementCode);
} catch (Exception e) {
log.error("补单数据插入失败");
}
return ResultVOUtils.success();
}
@Override
public List<StockOrderResponse> checkSupplementOrder(List<StockOrderEntity> stockOrderEntityList) {
if (CollUtil.isEmpty(stockOrderEntityList)) {
return Collections.emptyList();
}
List<StockOrderResponse> result = new ArrayList<>();
stockOrderEntityList.forEach(stockOrderEntity -> {
StockOrderResponse response = new StockOrderResponse();
BeanUtil.copyProperties(stockOrderEntity, response);
String supplementOrderType = bussinessTypeDao.selectEnableSupplementOrder(stockOrderEntity.getBillNo());
if (StrUtil.isBlank(supplementOrderType) || StrUtil.isNotBlank(stockOrderEntity.getSupplementNo())) {
response.setEnableSupplementOrder(false);
} else {
response.setEnableSupplementOrder(true);
}
result.add(response);
});
return result;
}
}

@ -185,7 +185,7 @@
<if test="index != null">index=#{index},</if>
<if test="corpType != null">corpType=#{corpType},</if>
<if test="storageCode != null">storageCode=#{storageCode},</if>
<if test="supplementOrderType != null">supplementOrderType=#{supplementOrderType},</if>
thirdSysFk=#{thirdSysFk},
</trim>
WHERE id = #{id}
@ -203,4 +203,19 @@
FROM basic_bussiness_type
WHERE id = #{id}
</select>
<select id="selectByAction" resultType="com.glxp.sale.admin.entity.basic.BussinessTypeEntity">
select * from basic_bussiness_type where action = #{action}
</select>
<select id="selectEnableSupplementOrder" resultType="java.lang.String">
select supplementOrderType
from basic_bussiness_type
where action in (select action from io_order where id = #{billNo})
</select>
<select id="selectCandidateBussinsessTypes" resultType="com.glxp.sale.admin.entity.basic.BussinessTypeEntity">
select name, action
from basic_bussiness_type
where mainAction = #{mainAction}
and supplementOrderType is null;
</select>
</mapper>

@ -117,6 +117,11 @@
FROM io_codes
WHERE `orderId` = #{orderId}
</select>
<select id="getByCorpOrderId" resultType="com.glxp.sale.admin.entity.inout.WarehouseEntity">
select *
from io_codes
where corpOrderId = #{corpOrderId}
</select>
<update id="updateOrderId" parameterType="Map">
UPDATE io_codes
SET orderId = #{newOrderId}

@ -83,6 +83,11 @@
SET `status` = #{status}
where id = #{orderId}
</update>
<update id="updateSupplementNoByBillNo">
update stock_order
set supplementNo = #{supplementOrderNo}
where billNo = #{billNo}
</update>
<select id="filterListOr" parameterType="com.glxp.sale.admin.req.inout.StockOrderFilterRequest"
resultType="com.glxp.sale.admin.entity.inout.StockOrderEntity">
SELECT * FROM stock_order

@ -63,6 +63,9 @@
</where>
</select>
<select id="getNameByCode" resultType="java.lang.String">
select name from inv_warehouse where code = #{fromCorpId}
</select>
<insert id="insertInvWarehouse" keyProperty="id"
parameterType="com.glxp.sale.admin.entity.inventory.InvWarehouseEntity">
insert INTO inv_warehouse

Loading…
Cancel
Save