1.添加单据编辑查询和修改时间接口

master
x_z 2 years ago
parent 6f7cb9124e
commit 1173860b09

@ -21,6 +21,7 @@ import com.glxp.api.req.basic.BasicEntrustRecRequest;
import com.glxp.api.req.inout.AddOrderRequest;
import com.glxp.api.req.inout.FilterOrderDetailBizRequest;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.inout.OrderEditRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
@ -317,5 +318,34 @@ public class IoOrderController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*
* @param billNo
* @return
*/
@GetMapping("udiwms/inout/order/filterOrderTrace")
public BaseResponse filterOrderTrace(String billNo) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
List<IoOrderEntity> list = orderService.filterOrderTrace(billNo);
List<IoOrderResponse> responses = orderService.findResponse(list);
return ResultVOUtils.success(responses);
}
/**
*
*
* @return
*/
@PostMapping("/udiwms/inout/order/updateOrderInfo")
public BaseResponse updateOrderInfo(@RequestBody OrderEditRequest orderEditRequest) {
if (null == orderEditRequest || CollUtil.isEmpty(orderEditRequest.getOrderIds())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
orderService.updateOrderInfo(orderEditRequest);
return ResultVOUtils.success();
}
}

@ -48,7 +48,16 @@ public interface DeptDao {
DeptEntity selectByThirdSys(@Param("thirdIdSys") String thirdIdSys, @Param("thirdId") String thirdId);
/** 根据code查询* */
/**
* code*
*/
DeptEntity selectByCodeAll(@Param("code") String code);
/**
*
*
* @param code
* @return
*/
String selectNameByCode(@Param("code") String code);
}

@ -63,4 +63,11 @@ public interface BasicBussinessTypeDao extends BaseMapper<BasicBussinessTypeEnti
*/
List<BasicBussinessTypeEntity> selectByUser(FilterBussinessTypeRequest filterBussinessTypeRequest);
/**
*
*
* @param action
* @return
*/
String selectNameByAction(@Param("action") String action);
}

@ -4,6 +4,8 @@ import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inout.OrderNoResult;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -33,4 +35,11 @@ public interface IoOrderDao extends BaseMapperPlus<IoOrderDao, IoOrderEntity, Io
*/
List<IoOrderEntity> selectSupplementOrderList();
/**
*
*
* @param billNo
* @return
*/
OrderNoResult selectBillNos(@Param("billNo") String billNo);
}

@ -0,0 +1,27 @@
package com.glxp.api.req.inout;
import lombok.Data;
import java.util.List;
/**
*
*/
@Data
public class OrderEditRequest {
/**
*
*/
private String createTime;
/**
*
*/
private String auditTime;
/**
*
*/
private List<String> orderIds;
}

@ -0,0 +1,30 @@
package com.glxp.api.res.inout;
import lombok.Data;
/**
* ID
*/
@Data
public class OrderNoResult {
private String id;
//补单单号
private String supplementNo;
//缺量补单上级单号
private String originUllageSupNo;
//缺量补单单号
private String ullageSupNo;
//复制单号,多个单号之间使用英文逗号,分隔
private String replicateNo;
//验收出库关联的预验收入库单,多个单号,隔开
private String preInBillNo;
//预验收入库单关联的预验收出库单,多个单号,隔开
private String preOutBillNo;
}

@ -2,6 +2,7 @@ package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.inout.OrderEditRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import java.util.List;
@ -62,4 +63,27 @@ public interface IoOrderService {
* @param filterOrderRequest
*/
void setFilterStatus(FilterOrderRequest filterOrderRequest);
/**
*
*
* @param billNo
* @return
*/
List<IoOrderEntity> filterOrderTrace(String billNo);
/**
* VO
*
* @param list
* @return
*/
List<IoOrderResponse> findResponse(List<IoOrderEntity> list);
/**
*
*
* @param orderEditRequest
*/
void updateOrderInfo(OrderEditRequest orderEditRequest);
}

@ -2,33 +2,48 @@ package com.glxp.api.service.inout.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.auth.DeptDao;
import com.glxp.api.dao.auth.InvSubWarehouseDao;
import com.glxp.api.dao.basic.BasicBussinessTypeDao;
import com.glxp.api.dao.basic.BasicCorpDao;
import com.glxp.api.dao.inout.IoOrderDao;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.inout.OrderEditRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inout.OrderNoResult;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.lang.reflect.Field;
import java.util.*;
@Slf4j
@Service
public class IoOrderServiceImpl implements IoOrderService {
@Resource
private IoOrderDao orderDao;
@Resource
BasicBussinessTypeDao basicBussinessTypeDao;
private BasicBussinessTypeDao basicBussinessTypeDao;
@Resource
private BasicCorpDao basicCorpDao;
@Resource
private DeptDao deptDao;
@Resource
private InvSubWarehouseDao invSubWarehouseDao;
@Override
public List<IoOrderEntity> selectAll() {
@ -199,6 +214,132 @@ public class IoOrderServiceImpl implements IoOrderService {
}
}
@Override
public List<IoOrderEntity> filterOrderTrace(String billNo) {
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().eq("billNo", billNo));
if (null == order) {
return Collections.emptyList();
}
//查询此单据关联的所有单据
return getAllOrder(order);
}
@Override
public List<IoOrderResponse> findResponse(List<IoOrderEntity> list) {
if (CollUtil.isEmpty(list)) {
return Collections.emptyList();
}
List<IoOrderResponse> responseList = new ArrayList<>(list.size());
for (IoOrderEntity order : list) {
IoOrderResponse response = new IoOrderResponse();
BeanUtil.copyProperties(order, response);
//查询单据类型名称
String busTypeName = basicBussinessTypeDao.selectNameByAction(order.getAction());
response.setBillTypeName(busTypeName);
//查询往来单位名称
BasicCorpEntity corpEntity = basicCorpDao.selectByErpId(order.getFromCorp());
response.setFromName(corpEntity.getName());
//查询部门名称
String deptName = deptDao.selectNameByCode(order.getDeptCode());
response.setDeptName(deptName);
//查询仓库名称
String invName = invSubWarehouseDao.selectNameByCode(order.getInvCode());
response.setInvName(invName);
responseList.add(response);
}
return responseList;
}
@Override
public void updateOrderInfo(OrderEditRequest orderEditRequest) {
log.info("批量更新单据信息,参数列表: {}", JSONUtil.toJsonStr(orderEditRequest));
IoOrderEntity order = new IoOrderEntity();
order.setCreateTime(DateUtil.parseDate(orderEditRequest.getCreateTime()));
order.setAuditTime(DateUtil.parseDate(orderEditRequest.getAuditTime()));
order.setUpdateTime(new Date());
orderDao.update(order, new QueryWrapper<IoOrderEntity>().in("billNo", orderEditRequest.getOrderIds()));
}
/**
*
*
* @param order
* @return
*/
private List<IoOrderEntity> getAllOrder(IoOrderEntity order) {
Set<String> billNos = new HashSet<>();
billNos.add(order.getBillNo());
getLinkedBillNo(order.getBillNo(), billNos);
//去除本单的单据号
Iterator<String> iterator = billNos.iterator();
while (iterator.hasNext()) {
if (iterator.next().equals(order.getBillNo())) {
iterator.remove();
break;
}
}
ArrayList<IoOrderEntity> orders = new ArrayList<>();
if (CollUtil.isNotEmpty(orders)) {
List<IoOrderEntity> list = orderDao.selectList(new QueryWrapper<IoOrderEntity>().in("billNo", billNos).orderByDesc("id"));
orders.addAll(list);
}
orders.add(order);
return orders;
}
/**
*
*
* @param billNo
* @param billNos
*/
private void getLinkedBillNo(String billNo, Set<String> billNos) {
List<String> list = getOneBillNosByOrderId(billNo);
if (!billNos.containsAll(list)) {
//找出不包含在原有集合中的单号,回调方法
String orderId = null;
for (String item : list) {
if (!billNos.contains(item)) {
orderId = item;
break;
}
}
billNos.addAll(list);
//递归,继续查询未包含的单据号关联的单据
getLinkedBillNo(orderId, billNos);
}
}
/**
*
*
* @param billNo
* @return
*/
private List<String> getOneBillNosByOrderId(String billNo) {
List<String> billNos = new ArrayList<>();
OrderNoResult orderNoResult = orderDao.selectBillNos(billNo);
if (null == orderNoResult) {
return billNos;
}
Field[] fields = ReflectUtil.getFields(OrderNoResult.class);
for (Field field : fields) {
String value = String.valueOf(ReflectUtil.getFieldValue(orderNoResult, field));
if (StrUtil.isNotBlank(value) && !"null".equals(value)) {
if (field.getName().equals("replicateNo")) {
String[] orderIds = value.split(",");
billNos.addAll(Arrays.asList(orderIds));
} else {
billNos.add(value);
}
}
}
return billNos;
}
boolean checkBusTypeSupplementOrder(IoOrderEntity orderEntity) {
BasicBussinessTypeEntity supplementOrderType = basicBussinessTypeDao.selectOne(new QueryWrapper<BasicBussinessTypeEntity>().eq("action", orderEntity.getAction()));
if (supplementOrderType != null) {

@ -274,4 +274,8 @@
from auth_dept
where code = #{code}
</select>
<select id="selectNameByCode" resultType="java.lang.String">
select name from auth_dept where code = #{code}
</select>
</mapper>

@ -239,4 +239,8 @@
</where>
group by basic_bussiness_type.action
</select>
<select id="selectNameByAction" resultType="java.lang.String">
select name from basic_bussiness_type where action = #{action}
</select>
</mapper>

@ -131,4 +131,10 @@
OR supplementOrderType
!= '')
</select>
<select id="selectBillNos" resultType="com.glxp.api.res.inout.OrderNoResult">
select originUllageSupNo, ullageSupNo, supplementNo, replicateNo, preInBillNo, preOutBillNo
from io_order
where billNo = #{billNo}
</select>
</mapper>

Loading…
Cancel
Save