Commit da74ef9b by 李小惠

修改快速出入库业务功能

parent bd6bb885
...@@ -13,6 +13,7 @@ public enum OrderExceptionEnum implements IExceptionEnum { ...@@ -13,6 +13,7 @@ public enum OrderExceptionEnum implements IExceptionEnum {
ORDERDETAIL_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"子单据不存在"), ORDERDETAIL_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"子单据不存在"),
ORDERDETAIL_ERROR(CommonConstant.DEFAULT_USER_ERROR_CODE,"子单据不一致,操作失败"), ORDERDETAIL_ERROR(CommonConstant.DEFAULT_USER_ERROR_CODE,"子单据不一致,操作失败"),
ROLE_ERROR(CommonConstant.DEFAULT_USER_ERROR_CODE,"审核组织机构用户配置异常!请检查日志"), ROLE_ERROR(CommonConstant.DEFAULT_USER_ERROR_CODE,"审核组织机构用户配置异常!请检查日志"),
ORDER_CREATE_ERROR(CommonConstant.DEFAULT_USER_ERROR_CODE,"单子创建失败"),
; ;
/** /**
......
...@@ -36,6 +36,13 @@ public class InventorySummary implements Serializable { ...@@ -36,6 +36,13 @@ public class InventorySummary implements Serializable {
@TableField("org_name") @TableField("org_name")
private String orgName; private String orgName;
/**
* 组织机构编码
*/
@ApiModelProperty(value = "组织机构编码")
@TableField("org_code")
private String orgCode;
/** /**
* 装备类型id * 装备类型id
*/ */
......
...@@ -13,9 +13,11 @@ import com.junmp.jyzb.api.bean.req.UpdateBusFormReq; ...@@ -13,9 +13,11 @@ import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderDetailReq; import com.junmp.jyzb.api.bean.req.UpdateOrderDetailReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq; import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.api.bean.req.UpdateReassignmentReq; import com.junmp.jyzb.api.bean.req.UpdateReassignmentReq;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.jyzb.entity.*; import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.service.*; import com.junmp.jyzb.service.*;
import com.junmp.jyzb.utils.DateTimeUtil; import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil; import com.junmp.v2.common.util.BeanPlusUtil;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection; import com.rabbitmq.client.Connection;
...@@ -81,18 +83,19 @@ import java.util.stream.Collectors; ...@@ -81,18 +83,19 @@ import java.util.stream.Collectors;
String Type= orderType.get(0).getValue().toString(); String Type= orderType.get(0).getValue().toString();
if (Type.equals("workOrder"))//出入库单据 if (Type.equals("workOrder"))//出入库单据
{ {
OrderMainReq req=new OrderMainReq(); // OrderMainReq req=new OrderMainReq();
req.setProcessId(processInstanceId); // req.setProcessId(processInstanceId);
OrderMain existOrder= orderMainService.getOne(new LambdaQueryWrapper<OrderMain>() OrderMain existOrder= orderMainService.getOne(new LambdaQueryWrapper<OrderMain>()
.eq(OrderMain::getProcessId, req.getProcessId())); .eq(OrderMain::getProcessId, processInstanceId));
existOrder.setExamineState("finished");
existOrder.setOrderState("ready");
UpdateOrderReq updateOrderReq = new UpdateOrderReq(); UpdateOrderReq updateOrderReq = new UpdateOrderReq();
BeanPlusUtil.copyProperties(existOrder,updateOrderReq); BeanPlusUtil.copyProperties(existOrder,updateOrderReq);
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>() List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, updateOrderReq.getId())); .eq(OrderDetail::getOrderId, updateOrderReq.getId()));
updateOrderReq.setId(existOrder.getId()); updateOrderReq.setId(existOrder.getId());
updateOrderReq.setExamineState("finished"); orderMainService.updateById(existOrder);
updateOrderReq.setOrderState("ready"); // orderMainService.ChangeOrderState(updateOrderReq);
orderMainService.ChangeOrderState(updateOrderReq);
List<UpdateOrderDetailReq> collect = list.stream().map(orderDetail -> { List<UpdateOrderDetailReq> collect = list.stream().map(orderDetail -> {
UpdateOrderDetailReq updateOrderDetailReq = new UpdateOrderDetailReq(); UpdateOrderDetailReq updateOrderDetailReq = new UpdateOrderDetailReq();
BeanPlusUtil.copyProperties(orderDetail, updateOrderDetailReq); BeanPlusUtil.copyProperties(orderDetail, updateOrderDetailReq);
...@@ -120,52 +123,18 @@ import java.util.stream.Collectors; ...@@ -120,52 +123,18 @@ import java.util.stream.Collectors;
} }
if (Type.equals("quickOrder")){ if (Type.equals("quickOrder")){
//创建快速出库单并且通过快速出库单再去创建入库单(主单)
OrderMain orderMain = new OrderMain();
OrderMain existOrder= orderMainService.getOne(new LambdaQueryWrapper<OrderMain>() OrderMain existOrder= orderMainService.getOne(new LambdaQueryWrapper<OrderMain>()
.eq(OrderMain::getProcessId, processInstanceId)); .eq(OrderMain::getProcessId, processInstanceId));
existOrder.setExamineState("finished"); existOrder.setExamineState("finished");
existOrder.setOrderState("ready"); existOrder.setOrderState("ready");
BeanPlusUtil.copyProperties(existOrder,orderMain);
orderMain.setEndOrgId(existOrder.getStartOrgId());
orderMain.setEndOrgName(existOrder.getStartOrgName());
orderMain.setOrderType("in");
orderMain.setId(UUID.randomUUID().toString());
//修改订单编号
UpdateOrderReq req = new UpdateOrderReq();
BeanPlusUtil.copyProperties(orderMain,req);
OrderNum orderNum = orderMainService.setOrderCode(req);
String codeValue=String.format("%04d",orderNum.getNum());
orderMain.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
String.format("%02d",LocalDateTime.now().getMonth().getValue())+
String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
orderMainService.updateById(existOrder); orderMainService.updateById(existOrder);
orderMainService.save(orderMain);
//创建子单
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, existOrder.getId()));
List<Object[]> searchCriteria=new ArrayList<>();
List<OrderDetail> collect = list.stream().map(orderDetail -> {
OrderDetail orderDetail1 = new OrderDetail();
BeanPlusUtil.copyProperties(orderDetail, orderDetail1);
//修改主单据id
orderDetail1.setOrderId(orderMain.getId());
//修改单据出入状态
orderDetail1.setType("in");
//修改仓库id
orderDetail1.setWarehouseId(orderMain.getLocationId());
orderDetail1.setWarehouseName(orderMain.getLocationName());
//新增创建时间
orderDetail1.setCreateTime(DateTimeUtil.getCurrentDateTime());
Object[] criteria=new Object[]{existOrder.getStartOrgId(),orderDetail.getWarehouseId(),orderDetail.getTypeId(),orderDetail.getSizeId(),orderDetail.getPrice()};
searchCriteria.add(criteria);
return orderDetail1;
}).collect(Collectors.toList());
orderDetailService.saveBatch(collect);
//将库存表中的装备的仓库id进行修改 //创建快速出库单并且通过快速出库单再去创建入库单(主单)
boolean b = orderMainService.addQuickOrder(existOrder);
if (!b){
throw new ServiceException(OrderExceptionEnum.ORDER_CREATE_ERROR);
}
//将summary汇总表中数据进行修改
} }
} }
......
...@@ -60,4 +60,8 @@ public interface InventoryMapper extends BaseMapper<Inventory> { ...@@ -60,4 +60,8 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
//判断epc是否存在 //判断epc是否存在
List<String> checkEPCList(@Param("list") List<String> epcList); List<String> checkEPCList(@Param("list") List<String> epcList);
//根据条件查询满足条件的数据(用于快速移库修改装备仓库id)
List<Inventory> selectEqsByItem(@Param("list") List<Object[]> searchCriteria);
} }
\ No newline at end of file
...@@ -35,7 +35,7 @@ public interface InventorySummaryMapper extends BaseMapper<InventorySummary> { ...@@ -35,7 +35,7 @@ public interface InventorySummaryMapper extends BaseMapper<InventorySummary> {
//出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新 //出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新
List<InventorySummary> selectByItems(@Param("list") List<Object[]> searchCriteria); List<InventorySummary> selectSumByItems(@Param("list") List<Object[]> searchCriteria);
//根据组织机构查询报表中的本级及下一级信息 //根据组织机构查询报表中的本级及下一级信息
List<TjOrgEqsDto> getByOrgId(@Param("orgId") Long orgId); List<TjOrgEqsDto> getByOrgId(@Param("orgId") Long orgId);
......
...@@ -81,4 +81,7 @@ public interface InventoryService extends IService<Inventory> { ...@@ -81,4 +81,7 @@ public interface InventoryService extends IService<Inventory> {
//判断epc是否存在 //判断epc是否存在
List<String> checkEPCList(EpcCheckReq req); List<String> checkEPCList(EpcCheckReq req);
//根据条件查询满足条件的数据(用于快速移库修改装备仓库id)
List<Inventory> selectEqsByItem(List<Object[]> searchCriteria);
} }
...@@ -35,6 +35,6 @@ public interface InventorySummaryService extends IService<InventorySummary> { ...@@ -35,6 +35,6 @@ public interface InventorySummaryService extends IService<InventorySummary> {
List<InventorySummary> EquipmentStatistics(InventorySumReq req); List<InventorySummary> EquipmentStatistics(InventorySumReq req);
//出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新 //出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新
List<InventorySummary> selectByItems(List<Object[]> searchCriteria); List<InventorySummary> selectSumByItems(List<Object[]> searchCriteria);
} }
...@@ -53,4 +53,6 @@ public interface OrderMainService extends IService<OrderMain> { ...@@ -53,4 +53,6 @@ public interface OrderMainService extends IService<OrderMain> {
OrderNum setOrderCode(UpdateOrderReq req); OrderNum setOrderCode(UpdateOrderReq req);
//快速创建入库单(快速移库内容)
boolean addQuickOrder(OrderMain existOrder);
} }
...@@ -601,6 +601,11 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -601,6 +601,11 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
return inventoryMapper.checkEPCList(req.getEpcList()); return inventoryMapper.checkEPCList(req.getEpcList());
} }
//根据条件查询满足条件的数据(用于快速移库修改装备仓库id)
@Override
public List<Inventory> selectEqsByItem(List<Object[]> searchCriteria) {
return inventoryMapper.selectEqsByItem(searchCriteria);
}
} }
\ No newline at end of file
...@@ -225,8 +225,8 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa ...@@ -225,8 +225,8 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
//出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新 //出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新
@Override @Override
public List<InventorySummary> selectByItems(List<Object[]> searchCriteria) { public List<InventorySummary> selectSumByItems(List<Object[]> searchCriteria) {
return inventorySummaryMapper.selectByItems(searchCriteria); return inventorySummaryMapper.selectSumByItems(searchCriteria);
} }
......
...@@ -157,7 +157,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -157,7 +157,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
searchCriteria.add(criteria); searchCriteria.add(criteria);
} }
//满足条件的数据 //满足条件的数据
List<InventorySummary> inventorySummaryList = inventorySummaryMapper.selectByItems(searchCriteria); List<InventorySummary> inventorySummaryList = inventorySummaryMapper.selectSumByItems(searchCriteria);
List<InventorySummary> addList=new ArrayList<>(); List<InventorySummary> addList=new ArrayList<>();
List<InventorySummary> updateList=new ArrayList<>(); List<InventorySummary> updateList=new ArrayList<>();
//遍历两者,判断数据库中是否全部存在,如果不存在,则进行增加数据操作,如果存在,则更新数据即可 //遍历两者,判断数据库中是否全部存在,如果不存在,则进行增加数据操作,如果存在,则更新数据即可
......
...@@ -720,7 +720,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman ...@@ -720,7 +720,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO(); StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId()); startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(reassignment.getId()); startProcessInstanceDTO.setOrderId(reassignment.getId());
startProcessInstanceDTO.setOrderType("reassigmentOrder"); startProcessInstanceDTO.setOrderType("reassigment");
startProcessInstanceDTO.setUserId(req.getUserId()); startProcessInstanceDTO.setUserId(req.getUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO); String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
reassignment.setProcessId(ProcessInstanceId); reassignment.setProcessId(ProcessInstanceId);
......
...@@ -466,6 +466,14 @@ ...@@ -466,6 +466,14 @@
#{item} #{item}
</foreach> </foreach>
</select> </select>
<select id="selectEqsByItem" resultType="com.junmp.jyzb.entity.Inventory">
select * from base_inventory where
<foreach collection="list" item="item" separator="or">
(
location_state = 'in' AND state = 'normal' AND org_id_int = ${item[0]} AND location_id = '${item[1]}' AND type_id = ${item[3]} AND size_id = '${item[2]}' AND unit_price = ${item[4]}
)
</foreach>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -264,7 +264,7 @@ ...@@ -264,7 +264,7 @@
GROUP BY size_id,type_id GROUP BY size_id,type_id
HAVING stockNumber>0 HAVING stockNumber>0
</select> </select>
<select id="selectByItems" resultType="com.junmp.jyzb.entity.InventorySummary"> <select id="selectSumByItems" resultType="com.junmp.jyzb.entity.InventorySummary">
select * from base_inventory_summary where select * from base_inventory_summary where
<foreach collection="list" item="item" separator="or"> <foreach collection="list" item="item" separator="or">
( (
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论